我正在尝试创建一个自定义验证器,但我得到的是ctrl。$ validators未定义。以下是我的代码:
link: function (scope, element, attrs, ctrl) {
ctrl.$validators.emptyCheckboxList = function (modelValue, viewValue) {
if (!modelValue || modelValue.length === 0) {
ctrl.$setValidity("emptyCheckboxList", false);
}
else {
ctrl.$setValidity("emptyCheckboxList", true);
}
}
}
此外,有没有办法覆盖所需的验证器?在AngularJS的文档中,他们提到要覆盖$ isEmpty,但它并没有与我合作。
由于
答案 0 :(得分:0)
ngModelController
$validators
指令的控制者可以使用 ng-model
道具。您似乎缺少在指令定义对象中要求ngModel
。
require: 'ngModel', //<-- this must be present here
link: function (scope, element, attrs, ctrl) {
ctrl.$validators.emptyCheckboxList = function (modelValue, viewValue) {
if (!modelValue || modelValue.length === 0) {
ctrl.$setValidity("emptyCheckboxList", false);
}
else {
ctrl.$setValidity("emptyCheckboxList", true);
}
}
}
在指令DDO中添加require: 'ngModel'
时。它在require
函数的第4个参数内使用link
指令控制器(本例ngModelController
)。