我正尝试通过以下链接在我的应用程序中实现有角度的 data-indeterminate-checkbox 指令。
我已将 ng-change 添加到父级和子级复选框(同一事件),以更新下表中的列。问题是,当我选中/取消选中子复选框时,列出现并且消失,并且工作正常,但是当我单击全选复选框时,操作将被反转。也就是说,当选中all all时,隐藏所有列,当取消选中时,所有列都可见。
在上面提到的小提琴链接指令的片段中,在else部分中,如果我将modelCtrl.$setViewValue(hasChecked);
更改为modelCtrl.$setViewValue(true);
,如下面的代码所示,取消选中部分可以正常工作,即我取消选中“全选”,所有列都被隐藏但是当我检查它时,没有任何反应,它也没有进入ng-change
事件。非常感谢任何帮助。
提前致谢,2016年新年快乐!!
// Determine which state to put the checkbox in
if (hasChecked && hasUnchecked) {
element.prop('checked', false);
element.prop('indeterminate', true);
if (modelCtrl) {
modelCtrl.$setViewValue(false);
}
} else {
element.prop('checked', hasChecked);
element.prop('indeterminate', false);
if (modelCtrl) {
modelCtrl.$setViewValue(true);
}
}
答案 0 :(得分:0)
通过在复选框的ng-change事件上添加条件来解决它。这是片段 - (根据示例小提琴):
if(!$scope.model.people[0].allEaten){
$timeout(function(){
updateModel();
refreshColumns();
},2000);
} else {
$timeout(function(){
refreshColumns();
},2000);
}
但如果有更好的答案,请随时评论。 谢谢!