HTML:
<select ng-model="contact.groups"
ng-options="item.id as item.name for item in groups"
ng-multiple="true" multiple>
<option value="">Choose groups</option>
</select>
contact.groups
包含分配给联系人的组列表:
[
{
id: 145,
name: 'FooBar
}
]
groups
是所有可用群组的列表。第一个问题是ng-options中的item.id不显示组的正确ID,但似乎从0(列表中的第一组),1(列表中的第二组)等计算
第二个问题是不考虑contact.groups,选择字段中没有预先选择的组。
请参阅此小提琴http://jsfiddle.net/Jy643/1/
任何想法如何处理这个问题?
答案 0 :(得分:2)
ngOptions通过严格相等来比较对象,这意味着您的模型组需要引用$scope.groups
中的一个组:
function MyCtrl($scope) {
$scope.test = "Das ist ein Test";
$scope.groups = [{id: 142, name: 'Foo'},{id: 143, name: 'Bar'}, {id: 144, name: 'Bas'}];
$scope.contact = {name: 'Bob', groups: [{id: 143}]};
$scope.contact = {name: 'Bob', groups: $scope.groups[1]};
}
答案 1 :(得分:1)
尝试将'track by tracking_expression'用于ngOptions(也在ngRepeat上运行),允许通过expresion而不是reference来匹配对象。 Angular Select Documentation