我有一个选择控件。它的选项是从范围的对象数组动态生成的。在应用程序初始化时,我想通过更改范围上的绑定变量来选择特定选项。
当 select 的 ng-option 返回完整对象时,它不起作用。但是,它在 select 的 ng-option 返回字符串时起作用。
是角虫还是我做错了什么?
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 小提琴:http: //jsfiddle.net/apuchkov/FvsKW/6/