我使用select
和ng-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中是否可能?
答案 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>