【发布时间】:2015-06-02 02:35:15
【问题描述】:
使用最新版本的 Angular。
当我设置自定义验证器并监视 ngModel 的更改时,我有一个指令。 $scope.$watch 仅在验证器返回 true 时有效,而在返回 false 时无效。我很好奇为什么会这样以及替代方案是什么。
目标是验证器应该在满足正确条件时将表单设置为有效。 $scope.watch() 旨在在用户输入时进行额外的文本格式化,例如,仅允许输入数字。
app.directive('validatorDirective', [
function ($timeout) {
return {
restrict: 'A',
require: 'ngModel',
link: function ($scope, $element, $attr, $controller) {
$scope.$watch($attr.ngModel, function (val) {
// no output when validator returns false, but returns model updates when validator returns true
console.log(val);
});
$controller.$validators.validFn = function (modelValue, viewValue) {
return false;
};
}
}
}
}]);
【问题讨论】:
标签: javascript angularjs validation