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()
на целое число после запроса данных из базы данных для обеспечения соответствия типов данных.