gpt4 book ai didi

javascript - Angularjs 中的自定义验证器 - $validators 未显示在链接函数中

转载 作者:行者123 更新时间:2023-11-28 03:56:57 26 4
gpt4 key购买 nike

我正在尝试创建一个自定义验证器,但我发现 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,但它对我不起作用。

谢谢

最佳答案

$validators 属性可在 ngModelController 内使用(ng-model 指令的 Controller )。您似乎在指令定义对象中缺少 require 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' 时。它利用 link 函数的第四个参数内的 require 指令 Controller (本例 ngModelController )。

关于javascript - Angularjs 中的自定义验证器 - $validators 未显示在链接函数中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47487882/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com