我通过ng-repeat
电话使用API
获得了一个用户列表。
对于每个用户,他们是5个类别,每个类别在true/false
上获得2-3个授权。
对于每个user/category/authorization
,我想要一个可以更改授权值的复选框。
当我选中用户的复选框时,我想要他的所有5个类别+所有授权都已经检查true
,如果我取消选中一个授权或用户类别,则他的复选框将显示false
。< / p>
因此,如果我重述一下:有parent(User)
,child(Category)
和盛大child(Authorization)
。
我看到我们可以将ng-model
与ng-checked
一起使用,但在我的复选框中,ng-model
用于boolean authorization (ng-model="authorization.Enabled")
,对于超过1个孩子,这不再是工作
我该如何处理这个案子?需要$watcher
?
感谢您的帮助!
答案 0 :(得分:0)
您可以对每个孩子/大孩子使用ng-click。 在其中传递父对象(用户或导管)对象并在特定条件下修改其布尔值(当所有子对象都为真时) 你不应该同时使用ng-click和ng-model,你可以通过使用ng-checked和ng-click on parent(user或cathegory)复选框来避免这样做。
vm.authorizationCheckboxClick = function (user,category, authorization) {
authorization.booleanValue = !authorization.booleanValue;
if (authorization.booleanValue){
category.booleanValue = true;
category.authorizations.forEach(function(element) {
if(!element.booleanValue){
category.booleanValue = false;
break;
}
}, this);
}
else {
category.booleanValue = false;
}
if (category.booleanValue){
user.booleanValue = true;
user.categories.forEach(function(element) {
if(!element.booleanValue){
user.booleanValue = false;
break;
}
}, this);
}
else {
user.booleanValue = false;
}
}
此示例函数更改授权值,然后更改父类别和用户的bolean值。您可以将此值绑定到ng-checked指令