2015-08-14 4 views
0

Выберите значение генерируется неправильнонг-опции значение неверно

$scope.statuses  = [ 
     {"key": "open", "value": "Open"}, 
     {"key": "work in progress", "value": "Work in Progress"}, 
     {"key": "dismiss", "value": "Dismiss"}, 
     {"key": "not an issue", "value": "Not an Issue"}, 
     {"key": "close", "value": "Close"} 
];  



<select ng-options="status.key as status.value for status in statuses" 
         ng-model="complaint.status"> 
</select> 

Сгенерировано HTML

<select ng-options="status.key as status.value for status in statuses" ng-model="complaint.status" class="ng-pristine ng-untouched ng-valid"> 
    <option value="0" selected="selected" label="Open">Open</option> 
    <option value="1" label="Work in Progress">Work in Progress</option> 
    <option value="2" label="Dismiss">Dismiss</option> 
    <option value="3" label="Not an Issue">Not an Issue</option> 
    <option value="4" label="Close">Close</option> 
</select> 
+0

Выглядит хорошо для меня, http: // jsfiddle.net/U3pVM/17886/ –

+0

выглядит как значение html не имеет корреляции с угловым значением – aWebDeveloper

ответ

0

Несмотря на то, что сгенерированный html не отображает фактический «ключ» в вашем массиве $ scope.statuses, это правильный путь. Угловой сохраняет ссылку на фактическое значение и обрабатывает остальное. Вы можете доказать это, проверяя KG Кристенсен скрипку, специально это линия, где он печатает действительное значение модели:

<h2>Val: {{complaint.status}}</h2> 

http://jsfiddle.net/U3pVM/17886/

Больше информации: ngOptions

1

Вам необходимо установить начальное значение для ngModel т.е.

$scope.complaint = { status : "open" }; 

См. fiddle