Mam kontrolę wyboru. Jego opcje są generowane dynamicznie z zakresu obiektów. Przy uruchomieniu aplikacji chcę wybrać konkretną opcję, zmieniając powiązaną zmienną w zakresie.AngularJS: Wybierz nie zmienia wybranej opcji przy zmianie zmiennej zakresu pętli
Nie działa, gdy opcja ng opcji zwraca pełny obiekt. Działa jednak, gdy opcja ng-opcji zwraca ciąg znaków.
Czy to błąd kątowy, czy coś robię źle?
HTML:
<div ng-controller="selectCtrl" ng-app>
Doesn't work when select's ngModel value is object:<br />
<select ng-model="valueObject" ng-options="o.label for o in options"></select><br />
<pre>{{valueObject | json}}</pre>
Works when select's ngModel value is string:<br />
<select ng-model="valueString" ng-options="o.value as o.label for o in options"></select>
<pre>{{valueString | json}}</pre>
JS:
function selectCtrl($scope) {
$scope.options = [
{label: 'a', value: '1', someId: 333},
{label: 'b', value: '2', someId: 555}
];
$scope.valueObject = {label: 'a', value: '1', someId: 333};
$scope.valueString = '1';
};
JS Fiddle: http://jsfiddle.net/apuchkov/FvsKW/6/
Masz rację, po prostu sprawdziłeś kod źródłowy angular.js i używa "===", aby zaznaczyć, czy opcja powinna być wybrana. Spodziewałbym się, że zamiast tego użyje on parametru angle.equals. –