我有两个字段:密码字段和确认密码字段。
根据业务要求,只有在密码不匹配的情况下,才能在特定时间从确认密码字段显示密码不匹配。
我已经决定最好的方法是创建一个确认密码指令:
.directive('confirmPasswordDirective',
['$timeout',
function($timeout){
return {
restrict: 'A',
require: 'ngModel',
link: function($scope, $element, $attrs, ngModel){
var getPassword = function(){//function to get password field value
return $scope.$eval($attrs.password);
};
// below is undefined
$scope.$watch([$attrs, $scope.$eval($attrs.password)], function(){
ngModel.$validators.confirmPassword = function(){
//watch ngModel here
};
});
}
}
}])
我可以从getPassword()函数中获取密码模型值,但我似乎无法简单地从该指令中查看密码的模型值,并根据其值测试有效性。
知道怎么做吗?
答案 0 :(得分:2)
如果你想在每次密码更改时调用回调函数,你必须注意的是getPassword函数:
$scope.$watch(getPassword, function(){
...
});
我认为没有理由在每次密码更改时重新定义confirmPassword验证器。回调应该做的只是在每次密码更改时验证字段。验证器应该定义并添加一次。