2017-02-23 12 views
1

Я хотел установить значение по умолчанию для своих ng-опций, используя ng-init, ng-model и т. Д. Я использую надежные выпадающие списки. Мой код выглядит следующим образом:Как установить значение по умолчанию для ng-опций в случае вложенных json-данных угловых js?

<select id="country" ng-model="statessource" ng-disabled="!type2" ng-options="country for (country, states) in countries" ng-change="GetSelectedCountry()"> 
        <option value='' selected>Select Country</option> 
       </select> 

<select id="state" ng-disabled="!statessource" ng-model="citiessource" ng-options="state for (state,city) in statessource" 
       ng-change="GetSelectedState()" > 
        <option value=''>Select State</option> 
       </select> 

с некоторыми данными, как это:

$scope.countries = { 
    'USA': { 
     'IL': { 'CHICAGO': ['60633', '60646', '60653', '60656', '60607', '60632', '60643', '60652', '60620', '60612', '60661', '60624', '60634', '60601', '60827', '60644', '60631', '60630'] }, 
    } 
} 

Я хочу, чтобы установить значение по умолчанию США в стране выпадающего списка. Как я должен это делать. Пожалуйста, предложите мне.

+0

где "statessource" объект? –

+0

Вы спрашиваете ng-options для повторения по сравнению с statessource, но хотите ли вы выбрать некоторое значение, которое не является частью statessource? – pranavjindal999

ответ

2

Вы не указали полный код здесь, в соответствии с кодом, который вы опубликовали, У вас слишком много ошибок в коде.

Определить другую переменную $scope, которая имеет объект по умолчанию, выбранный по имени «США». Вы можете сделать это, как следующее:

$scope.countries = { 
    'USA': { 
     'IL': { 
     'CHICAGO': ['60633', '60646', '60653', '60656', '60607', '60632', '60643', '60652', '60620', '60612', '60661', '60624', '60634', '60601', '60827', '60644', '60631', '60630'] 
     }, 
    } 
    } 
    $scope.selected = $scope.countries["USA"]; // this needs to be added 

И ваш взгляд часть будет выглядеть следующим образом:

<select id="state" ng-disabled="!countries" ng-model="selected" 
    ng-options="state for (state,city) in countries" ng-change="GetSelectedState()"> 
    <option value=''>Select State</option> 
    </select> 

и рабочего Plunker

Надеется, что это поможет.

0

Вы можете установить значение по умолчанию, изменив переменную citiessource. Поэтому, чтобы установить значение по умолчанию как USA, вам нужно $scope.citiessoruce = 'USA'.

1

Вы можете использовать ng-init вот так, чтобы установить значение по умолчанию для ng-option.

<select id="state" 
     ng-disabled="!statessource" 
     ng-model="citiessource" 
     ng-init=" citiessource = countries[0]" 
     ng-options="state for (state,city) in statessource" 
     ng-change="GetSelectedState()"> 

    </select> 
0

Установите ваш ng-model на значение, которое вы хотите назначить на странице загрузки.

т.е.

$scope,citiessource = $scope.countries; 
Смежные вопросы