2015-04-15 2 views

ответ

2

Вам необходимо добавить ng-model. На основе вашего info.value.lang вы можете установить selected : true на значение модели.

function MyCntrl($scope) { 
    $scope.info = info; 
    $scope.selectedItem = null; 

    angular.forEach(info.value.lang, function(lang) { 
     if (lang.selected === true){ 
     $scope.selectedItem = lang.value; 
     } 
    }); 
} 

<div ng-controller="MyCntrl"> 
    <select ng-model="selectedItem" ng-options="option.value as option.name for option in info.value.lang" > 
    </select> 
</div> 

Демо: http://plnkr.co/edit/RMr19uwuOH3EEjMd7cRL

+0

Я понял, спасибо! – 0n1yDream

+0

@ 0n1yDream: Некоторая опечатка в вашем значении plunker ';": 3082, 'и' "значение;": 6666, '. Я добавил объект 'test' в свой плункер. Пожалуйста, проверьте мой плукер. – Arulkumar

+0

Я заметил это позже, спасибо вам большое! – 0n1yDream

0

В вашем исходном plunkr вы использовали данные в HTML, а ваша переменная в области называется info. Использование нг-повтора вместо нг-опций я получил его на работу, как это:

<div ng-controller="MyCntrl"> 
    <select > 
    <option ng-repeat="option in info.value.lang" selected="option.selected">{{ option.name }}</option> 
    </select> 
</div> 

http://plnkr.co/edit/jp8g65LDtft1ZVvJe8nz

Который также получает результат, который вы хотите, если я интерпретировал свой вопрос прямо.

Редактировать: О, кстати, выбранный должен быть выбран = 'selected', а не логическим.

+0

Его хорошо с 'нг-repeat' .. Но есть ли способ сделать то же самое с' нг-options'? ? – phpfresher

+0

Да, я думаю, что ответ Arulkumar выше, и он использует ng-options. – Peter

+1

Это работает только тогда, когда выбранный вариант является последним. Если я изменяю информацию о переменной, как показано в [link] (http://plnkr.co/edit/dKllfAVK0bhd92fXe1LG), выбранная опция неверна – 0n1yDream

0

Вы использовали другое имя переменной в JS и в HTML. У ngOptions должна быть модель. Для установки испанского языка по умолчанию вам нужно сделать что-то подобное.

<body> 
<div ng-controller="MyCntrl"> 
    <select ng-model="someModel" ng-init="someModel=3082" ng-options="option.value as option.name for option in info.value.lang"> 
    </select> 
</div> 
</body> 

Здесь someModel будет иметь выбранное значение из параметров.

0

Вам нужно добавить ng-model проверить эту ссылку он работает сейчас .. plunker

Смежные вопросы