添加布尔复选框 ng-model 到 object AngularJS
Add boolean checkboxes ng-model to object AngularJS
我正在尝试做类似 tree-checkboxes 的事情。
我想将布尔值添加到检查名称的 children 中:例如。单击 name
处的复选框后:eva
- 她的所有 children 也将被选中。
像那样:
$scope.messages =
{
"family": [
{
"name": "eva",
"checked" : true,
"childrens": [
{
"name": "John",
"checked" : true,
"childrens": [
{
"name": "Jacob",
"checked" : true,
}
我的代码:
<div ng-repeat="key in messages">
<ul ng-repeat=" (x, y) in key" style="list-style:none;">
<li>
<input type="checkbox" ng-model="y.check" ng-change="changeValue(shapes, y.name)" /> {{y.name}} {{y.check}}</li>
<li style="margin-left:15px;" ng-repeat="(a,b) in y.childrens">
<input type="checkbox" ng-model="b.check" ng-change="changeValue(shapes, b.name)" /> {{b.name}} {{b.check}}
<ul style="margin-left:15px;" ng-repeat="p in b.childrens">
<li>
<input type="checkbox" ng-model="p.check" ng-change="changeValue(shapes, p.name)" /> {{p.name}} {{p.check}}</li>
</ul>
</li>
</ul>
</div>
这是我的 plnkr:http://plnkr.co/edit/lFYUvcTt1W709vam5Dfv?p=preview
我分叉了你的pinkr
如您所见,我更新了 ng-change
中的 childrens 并且此函数是递归的,因此所有 childrens 也将被检查
$scope.changeValue = function(foo, person) {
for(var i in person.childrens){
person.childrens[i].check = person.check;
$scope.changeValue(foo, person.childrens[i]);
}
};
查一个人,就查child人。如果检查 child,它不会更新 parent。
我正在尝试做类似 tree-checkboxes 的事情。
我想将布尔值添加到检查名称的 children 中:例如。单击 name
处的复选框后:eva
- 她的所有 children 也将被选中。
像那样:
$scope.messages =
{
"family": [
{
"name": "eva",
"checked" : true,
"childrens": [
{
"name": "John",
"checked" : true,
"childrens": [
{
"name": "Jacob",
"checked" : true,
}
我的代码:
<div ng-repeat="key in messages">
<ul ng-repeat=" (x, y) in key" style="list-style:none;">
<li>
<input type="checkbox" ng-model="y.check" ng-change="changeValue(shapes, y.name)" /> {{y.name}} {{y.check}}</li>
<li style="margin-left:15px;" ng-repeat="(a,b) in y.childrens">
<input type="checkbox" ng-model="b.check" ng-change="changeValue(shapes, b.name)" /> {{b.name}} {{b.check}}
<ul style="margin-left:15px;" ng-repeat="p in b.childrens">
<li>
<input type="checkbox" ng-model="p.check" ng-change="changeValue(shapes, p.name)" /> {{p.name}} {{p.check}}</li>
</ul>
</li>
</ul>
</div>
这是我的 plnkr:http://plnkr.co/edit/lFYUvcTt1W709vam5Dfv?p=preview
我分叉了你的pinkr
如您所见,我更新了 ng-change
中的 childrens 并且此函数是递归的,因此所有 childrens 也将被检查
$scope.changeValue = function(foo, person) {
for(var i in person.childrens){
person.childrens[i].check = person.check;
$scope.changeValue(foo, person.childrens[i]);
}
};
查一个人,就查child人。如果检查 child,它不会更新 parent。