【发布时间】:2016-01-05 01:55:11
【问题描述】:
我正在尝试通过下面的链接在我的应用程序中实现角度 data-indeterminate-checkbox 指令。
我已将 ng-change 添加到父级和子级复选框(相同事件),它会更新下表中的列。问题是当我选中/取消选中子复选框时,列会出现并消失,并且工作正常,但是当我单击全选复选框时,操作会反转。即全选时,所有列隐藏,未选中时,所有列可见。
在上面提到的小提琴链接的指令的 sn-p 中,在 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);
}
}
【问题讨论】:
-
我设置了
modelCtrl.$setViewValue(true);,但我没有看到行为错误。复选框变为未选中状态,然后再次单击全选以选中所有相关复选框。能详细点吗? -
感谢您的回复。问题不在于使用全选选择所有复选框,而是我已添加到全选的 ng-change 事件。当我检查全选时,我试图在我的代码中刷新的表中的列会消失,这应该在未选中全选时发生。所以事件行为是相反的。现在有意义吗?
标签: angularjs checkbox angularjs-directive