我使用<select>
和ng-model
来控制ng-options
:
<select ng-model="user.option"
ng-options="value.label for (key, value) in data.options">
<option value="">Select value</option>
</select>
选项分组在一个对象中:
$scope.data.options = {
one: { label: 'one' },
two: { label: 'two' }
};
在某些时候,我想从控制器更改所选选项。这有效:
$scope.user.option = $scope.data.options['two'];
但是,在我的上下文中,我维护变量master
,并使用它来设置$scope.user
:
$scope.master.option = $scope.data.options['two'];
$scope.user = angular.copy ($scope.master);
这不起作用:我的<select>
仍显示Select value
。但其他因素恰当地反映了这种变化。
我做错了什么?
我创建了一个小提琴there。
答案 0 :(得分:0)
//Add track by in ng-options ..check below code
<div ng-app="my-app">
<div ng-controller="MyCtrl">
<select ng-model="user.option"
ng-options="value.label for (key, value) in data.options track by value.label">
<option value="">Select value</option>
</select>
<p>Selected: {{user.option.label}}
</div>
</div>