ng-if 里面的 ng-repeat 没有被重新评估
Ng-if inside ng-repeat is not re evaluated
我的用户有预先分配的角色。您可以将任何角色分配给任何用户。
如果用户已经拥有该角色 => 选中复选框
(您可以取消选中以禁用该角色)
如果用户没有角色:您可以使用 "add" 按钮为用户添加角色。
添加角色时,复选框应该出现(并选中)
- {{user.name}}
{{角色}}
$scope.users = [];
$scope.roles = ["a", "b", "c"];
$scope.users.push({name: "A", roles: [{type: "a", enabled:true}]});
$scope.users.push({name: "B", roles: [{type: "b", enabled:true}]});
$scope.users.push({name: "C", roles: [{type: "b", enabled:true}, {type: "c", enabled:true}]});
$scope.findUserRole = function(userRoles, role){
for(i in userRoles)
{
var userRole = userRoles[i];
if ( userRole.type === role )
{
return userRole;
}
}
return null;
}
$scope.addUserRole = function(roles, role){
roles.push({type: role, enabled: true});
}
我在添加角色时无法显示复选框
你有什么想法吗?
笨蛋:http://plnkr.co/edit/aIROCvAN2YztUdR4C3Pb?p=preview
谢谢。
ng-init
执行一次。如文档所示,您几乎不应该使用 ng-init。
避免它并在 ng-if 中获得用户角色:
<li> {{role}}
<input ng-if="findUserRole(user.roles, role)" type="checkbox" ng-model="userRole.enabled">
<input ng-if="!findUserRole(user.roles, role)" type="button" ng-click="addUserRole(user.roles, role)" value="add">
</li>
我的用户有预先分配的角色。您可以将任何角色分配给任何用户。
如果用户已经拥有该角色 => 选中复选框 (您可以取消选中以禁用该角色)
如果用户没有角色:您可以使用 "add" 按钮为用户添加角色。 添加角色时,复选框应该出现(并选中)
- {{user.name}} {{角色}}
$scope.users = [];
$scope.roles = ["a", "b", "c"];
$scope.users.push({name: "A", roles: [{type: "a", enabled:true}]});
$scope.users.push({name: "B", roles: [{type: "b", enabled:true}]});
$scope.users.push({name: "C", roles: [{type: "b", enabled:true}, {type: "c", enabled:true}]});
$scope.findUserRole = function(userRoles, role){
for(i in userRoles)
{
var userRole = userRoles[i];
if ( userRole.type === role )
{
return userRole;
}
}
return null;
}
$scope.addUserRole = function(roles, role){
roles.push({type: role, enabled: true});
}
我在添加角色时无法显示复选框
你有什么想法吗?
笨蛋:http://plnkr.co/edit/aIROCvAN2YztUdR4C3Pb?p=preview
谢谢。
ng-init
执行一次。如文档所示,您几乎不应该使用 ng-init。
避免它并在 ng-if 中获得用户角色:
<li> {{role}}
<input ng-if="findUserRole(user.roles, role)" type="checkbox" ng-model="userRole.enabled">
<input ng-if="!findUserRole(user.roles, role)" type="button" ng-click="addUserRole(user.roles, role)" value="add">
</li>