ng-selected не работает в элементе select

У меня есть привязка select

<select ng-model="collegeSelection" ng-options="c as c.CollegeName for c in colleges" ng-selected="c.CollegeName == collegeSelection.CollegeName" name="selectCollege" id="selectCollege"></select>  

но когда оба c.CollegeName == collegeSelection.Совпадение CollegeName элемент по-прежнему не выбран. Документация, похоже, не помогает. Есть идеи?

4 ответов


ng-selected следует использовать в <option> - тег, а не в <select> тег. Взгляните поближе на его doc и пример.

потому что select определение директивы выбранного параметра основано на ngModel. Поэтому, как только вы удалите ng-selected="c.CollegeName == collegeSelection.CollegeName" код должен работать.

я создал очень простой цок чтобы продемонстрировать "некоторые" в


после игры с ng-selected некоторое время я не мог заставить его работать, как вы просите. Тем не менее, я смог предварительно выбрать конкретный вариант, используя ng-init.

здесь JSFiddle мое решение. Мой <select> закончилось:

 <select ng-model="selectedColor" ng-options="color.value as color.name for color in colors" ng-init="selectedColor='yellow'">
   <option value="">Select A Color</option>
 </select>`

и меня colors массив-это:

 colors = [
        {name:'Red', value: 'red'}, 
        {name:'Orange', value: 'orange'}, 
        {name:'Yellow', value: 'yellow'}, 
        {name:'Green', value: 'green'}, 
        {name:'Blue', value: 'blue'}, 
        {name:'Indigo', value: 'indigo'}, 
        {name:'Violet', value: 'violet'}
 ]

изменение ng-init="selectedColor='yellow'" для другого значения будет выбран другой вариант.


некоторые люди имеют проблемы с этим. Я нашел отличное решение для простого выпадающего списка if controller as someController

var vm = this;
this.colors = [
        {name:'Red'}, 
        {name:'Orange'}, 
        {name:'Yellow'}, 
        {name:'Green'}, 
        {name:'Blue'}, 
        {name:'Indigo'}, 
        {name:'Violet'}
 ];
this.color_selected = "Yellow";
<select ng-model="someController.color_selected" ng-options="opt.name as opt.name for opt in someController.colors">
</select>

`


у меня была аналогичная проблема и понял причину, из-за разных типов данных. ng-model сравнивался со строковым значением, но я вытаскивал целое число из базы данных, поэтому он не выбирал автоматически этот параметр. Чтобы преодолеть это, я позвал toString() на целое число после запроса данных из базы данных для обеспечения соответствия типов данных.