ng-options中的对象比较

时间:2015-02-25 16:54:59

标签: angularjs ng-options

我使用selectng-options填充ng-model。我遇到的问题是,最初,模型是ng-options中数据的副本,因此我的初始状态为空option而不是ng-model的正确状态。我怎样才能使它正确地比较模型?如果我使用Id,则很难显示描述

<select ng-options="role.Name for role in roles" ng-model="editingUser.Roles[0]"></select>
<span>{{editingUser.Roles[0].Description}}</span>

在C#中我会重载相等的方法,这在JS / Angular中是否可能?

2 个答案:

答案 0 :(得分:1)

在这种情况下,Angular使用引用相等。在您的控制器中,遍历roles数组以查找与editingUser.Roles[0]中的副本相对应的原始内容,并将副本替换为原始副本。

答案 1 :(得分:0)

如果您的角色包含ID,则可以在ng-options属性中使用 track by

<select ng-options="role.Name for role in roles track by role.id"
ng-model="editingUser.Roles[0]"></select>