我有一个管理用户角色的应用程序。我在数组$scope.users
中有很多用户。用户对象的结构如下所示:
{
name: "Larry",
role: {
id: 2,
name: "Work"
class: "role-work"
},
mustHaveRole: true
}
我在数组$scope.roles
中也有一堆角色。每个角色元素的结构与每个用户role
字段相同。
我需要创建一个<select>
元素,其中包含$scope.roles
中的每个角色。每个<option>
元素都需要在其class
字段中指定类。必须首先选择与用户的id
匹配role.id
的角色。 <select>
元素必须从绝对选择的<option>
元素继承它的类。对于mustHaveRole
设置为false
的用户,还必须有一个空元素,将role
字段设置为null
。
如何实现这一目标?我觉得ng-options
不够灵活,但当我使用<option>
创建所有ng-repeat
元素时,Angular有时会创建一个额外的空<option>
元素,它不应该存在 -
答案 0 :(得分:0)
为ng-model
分配用户角色ID
<div ng-controller="MyCntrl">
<select ng-model="user.role.id" ng-options="v for v in roles">
</select>
</div>
function Ctrl($scope) {
$scope.roles= { "type": "select",
"values": [ "Role 1", "Role 2", "Role 3", "Role 4"]
};
}
选中此plnkr