2016-07-06 7 views
2

Ich versuche Winkel-Validierung-Match von https://github.com/TheSharpieOne/angular-validation-match zu verwenden. Ich kann die Match-Bedingung nicht auslösen, um irgendeine Form der Formularvalidierung auszulösen. Gerade jetzt, selbst wenn die Passwörter unterschiedlich sind, wird es nicht zeigen, dass die Passwörter nicht übereinstimmen. Irgendein Grund kann dies sein? Unten ist das HTML.Angular JS | Angular Validation Match Password

<form name="vm.changeForm" 
     ng-submit="vm.changeForm.$valid && vm.attemptChange(password);" 
     > 
    <md-input-container class="md-block"> 
     <input required 
      type="password" 
      placeholder="New Password" 
      name="passwordName" 
      ng-model="password" 
      /> 
     <div ng-messages="vm.changeForm.passwordConfirm.$error" 
      ng-if="vm.changeForm.passwordConfirm.$touched" 
      role="alert" 
      > 
     <div ng-message="required">Please enter a password.</div> 
     </div> 
    </md-input-container> 
    <md-input-container class="md-block"> 
     <input required 
      type="password" 
      placeholder="Confirm New Password" 
      name="myConfirmField" 
      ng-model="passwordConfirm" 
      match="password" 
      /> 

     <div ng-show="vm.changeForm.passwordConfirm.$error.match" 
      ng-if="vm.changeForm.passwordConfirm.$touched" 
      role="alert">Passwords do not match</div> 


    </md-input-container> 
    </form> 

Antwort

2

Hinweise:

  1. Sie verwenden ng-if und ng-Show auf dem gleichen div, die nicht notwendig ist, können Sie einfach in ein einfaches ng-if.

  2. Sie müssen die name Eigenschaft anstelle der ng-model verwenden.

Also, da Ihr Name inputmyConfirmField ist, müssen Sie diese ersetzen:

<div ng-show="vm.changeForm.passwordConfirm.$error.match" ng-if="vm.changeForm.passwordConfirm.$touched" role="alert">Passwords do not match</div> 

für:

<div ng-if="vm.changeForm.myConfirmField.$touched && vm.changeForm.myConfirmField.$error.match" role="alert">Passwords do not match</div> 

Dann sollten Sie das erwartete Ergebnis.