Моя цель здесь - создать список выбора, в котором значения параметров установлены для одного из свойств моих объектов. При добавлении параметра отслеживания путем привязки в директиву ng-options создается неизвестный элемент параметра, и это единственный параметр, который когда-либо отображался как выбранный. Это поведение находится в angular v1.3 (это версия, которую я использую). В версии 1.4 он по-прежнему создает неизвестный элемент, но меняет отображение, чтобы отображать другой выбранный элемент. Ни в том, ни в другом случае он не устанавливает начальное состояние раскрывающегося списка в соответствии со значением модели.
Отслеживание ng-options на примере v1.3
<body>
<script>
angular.module('plunker', [])
.controller("MyCntrl", function($scope) {
$scope.myColor = "rd"; // red
$scope.colors = [
{name:'black', code:'bk'},
{name:'white', code:'wh'},
{name:'red', code:'rd'},
{name:'blue', code:'bl'},
{name:'yellow', code:'yl'}
];
});
</script>
<div ng-controller="MyCntrl">
<select ng-model="myColor" ng-options="color.code as color.name for color in colors track by color.code"></select><br>
<hr/>
<span>Currently selected: {{myColor}}</span>
</div>
</body>
В v1.4 он по-прежнему не устанавливает начальное состояние, но при выборе нового значения он изменит отображение. Я нахожу странным, что это не работает и что это не проблема.
Если вам интересно, мы хотим, чтобы значения параметров были известными кодами, которые наша автоматизация тестирования может использовать, и единственное, что мы хотим, чтобы значение модели было кодом. Кажется, что это довольно стандартная вещь.