2016-07-13 9 views
0

Angular Auto Validate'sパスワード一致/確認の例をフォームに統合しようとしています。私はどんなエラーも出ませんが、パスワードマッチングコードが蹴られていません。これを修正する最も単純な方法は何ですか?私は間違って何をしていますか?アンギュラ自動検証のパスワード照合コードが作業のAngular Auto Validateとのパスワード一致に関する問題

function ConfirmPasswordValidatorDirective(defaultErrorMessageResolver) { 
    defaultErrorMessageResolver.getErrorMessages().then(function (errorMessages) { 
     errorMessages['confirmPassword'] = 'Please ensure the passwords match.'; 
    }); 

    return { 
     restrict : 'A', 
     require : 'ngModel', 
     scope : { 
      confirmPassword : '=confirmPassword' 
     }, 
     link : function(scope, element, attributes, ngModel) { 
      ngModel.$validators.confirmPassword = function(modelValue) { 
       return modelValue === scope.confirmPassword; 
      }; 

      scope.$watch('confirmPassword', function() { 
       ngModel.$validate(); 
      }); 
     } 
    }; 
} 

ConfirmPasswordValidatorDirective.$inject = [ 
    'defaultErrorMessageResolver' 
]; 

Here's a plunkr

Here's a plunkr of my code

は、ここで私は統合しようとしているパスワードのマッチングコードです。

+0

これを行うための多くの投稿/準備指令があります。例:http://stackoverflow.com/questions/14012239/password-check-directive-in-angularjs – developer033

+0

ありがとう、 Angular Auto Validateを使用して、上記の投稿の特定の問題に対処しています。 –

+0

本当に、私はあなたがそれを具体的に書いていないので、あなたがモジュールを使っていることに気付かなかった。 – developer033

答えて

1

まあ、最初にあなたがあなたのconfirmPassword<input>でそれを含める必要がありますので、あなたのビューでディレクティブに電話をするのを忘れた:

confirm-password="formModel.password" 

また、あなたがあなたのにディレクティブを宣言していませんJSファイル:

app.directive('confirmPassword', ConfirmPasswordValidatorDirective); 

ルック:DEMO

+0

素晴らしいありがとう。 ああ "'、範囲参照:{ confirmPasswordを: '= confirmPassword' }、 'confirmPassword' ' ただ、一つの質問には反映されませんでしたので、私は理解することができます:なぜあなたは'削除しなかったクラス=" コントロール - パスワードラベルに "label"と書かれていますか? –

+0

うん、おそらく、私はplnkrのフィールドをコピーしました:)しかし**あなたの** plnkr上で上記の変更を行うことができ、うまくいくでしょう。 – developer033

+0

ありがとうございます。 –

関連する問題