查找在嵌套ng repeat AngularJS中单击或选中的复选框

查找在嵌套ng repeat AngularJS中单击或选中的复选框,angularjs,checkbox,angularjs-ng-repeat,Angularjs,Checkbox,Angularjs Ng Repeat,我有一个父复选框列表,每个父复选框中都有子复选框列表 对于父复选框,附加数据信息=“类别”属性;对于子复选框,附加数据信息=“名称”属性 通过选中和取消选中父复选框,子复选框列表将分别可见和隐藏 我想要的是,当我取消选中父复选框时,所有子HKBX也应该取消选中。仅未选中,不适用于已选中的场景 另外,我想访问选中复选框的数据信息属性。如何在选中复选框时获取此属性 目前,我在jquery的帮助下实现了这一点。您可以将复选框绑定到父项上的选中属性,然后设置一个$watch:当选中属性更改时,更新子项的

我有一个父复选框列表,每个父复选框中都有子复选框列表

对于父复选框,附加数据信息=“类别”属性;对于子复选框,附加数据信息=“名称”属性

通过选中和取消选中父复选框,子复选框列表将分别可见和隐藏

我想要的是,当我取消选中父复选框时,所有子HKBX也应该取消选中。仅未选中,不适用于已选中的场景

另外,我想访问选中复选框的数据信息属性。如何在选中复选框时获取此属性


目前,我在jquery的帮助下实现了这一点。

您可以将复选框绑定到父项上的选中属性,然后设置一个
$watch
:当选中属性更改时,更新子项的选中属性

var-app=angular.module('app',[]);
应用程序控制器('ctrl',函数($scope){
$scope.parents=[
{ 
姓名:'parent1',
勾选:假,
儿童:[{
姓名:'child1',
勾选:假
},
{
姓名:'child2',
勾选:假
}]
}];
angular.forEach($scope.parents,函数(项,索引){
$scope.$watchCollection('parents['+index+']',function(newVal){
if(newVal){
angular.forEach(newVal.children,函数(项,索引){
item.checked=newVal.checked;
});
}
});
});
});

{{parent.name}
  • {{child.name}

实际上,复选框的名称是通过ajax从服务器获得的,所以我不能在json中添加复选框字段。另外,forEach内部的forEach很重,复杂度很高,而且您的代码在选中父复选框时也会选中所有子复选框。像juery一样,没有任何类型的$('input[type='checkbox']).attr('checked',false);只有一行代码,因此我使用jquery选择父级中的所有子复选框,并将checked属性设置为false。这只是一行代码,jquery与angularjs相比非常简单,您选择使用jquery…祝您好运:)不,我没有选择jquery,只是我必须使用jquery,因为我无法执行我想使用angular,在jquery中它只是一个单行代码。我想使用angular做那种事情,这就是我在这里发布问题的全部目的。请帮助或建议我一个好方法