我正在使用AngularJS指令来创建复选框列表checklist-model,但我需要始终保留至少一个复选框被选中。
我已经通过添加if语句修改了checklist-model.js:
问题在于 UI 已经变为未选中状态,但模型并没有改变。
是否有一个优雅的建议(最好不使用 JQuery)来将复选框更改回“已选中”状态,或者更好的是在它变为选中之前捕捉它?
JSfiddle 这里,尝试取消所有选中并查看当所有复选框都未选中时(我正在尝试防止这种情况),模型仍然保持不为空(这很好,但不够)。
watch if(current.length > 1)
在移除检查之前:
scope.$watch(attrs.ngModel, function(newValue, oldValue) {
if (newValue === oldValue) {
return;
}
var current = getter(scope.$parent);
if (angular.isFunction(setter)) {
if (newValue === true) {
setter(scope.$parent, add(current, value, comparator));
} else {
if(current.length > 1)
{
setter(scope.$parent, remove(current, value, comparator));
}
}
}
if (checklistChange) {
checklistChange(scope);
}
});
问题在于 UI 已经变为未选中状态,但模型并没有改变。
是否有一个优雅的建议(最好不使用 JQuery)来将复选框更改回“已选中”状态,或者更好的是在它变为选中之前捕捉它?
JSfiddle 这里,尝试取消所有选中并查看当所有复选框都未选中时(我正在尝试防止这种情况),模型仍然保持不为空(这很好,但不够)。