私はパスワード検証ディレクティブを書いています:
Directives.directive("passwordVerify",function(){
return {
require:"ngModel",
link: function(scope,element,attrs,ctrl){
ctrl.$parsers.unshift(function(viewValue){
var origin = scope.$eval(attrs["passwordVerify"]);
if(origin!==viewValue){
ctrl.$setValidity("passwordVerify",false);
return undefined;
}else{
ctrl.$setValidity("passwordVerify",true);
return viewValue;
}
});
}
};
});
html :
<input data-ng-model='user.password' type="password" name='password' placeholder='password' required>
<input data-ng-model='user.password_verify' type="password" name='confirm_password' placeholder='confirm password' required data-password-verify="user.password">
フォームに 2 つのパスワード フィールドがある場合、両方のパスワード値が等しい場合、ディレクティブの影響を受けるフィールドは有効です。問題は、それが一方向にしか機能しないことです (つまり、パスワード確認フィールドにパスワードを入力したとき)。ただし、元のパスワード フィールドが更新されると、password-verify は有効になりません。
「双方向バインディング検証」を行う方法はありますか?