Ich habe Anmeldeformular in meiner ionischen App (the code available here), die Anmeldeansicht hat es eigenen Controller. Das Passwort bestätigen hat eine Direktive, um die Übereinstimmung mit dem Hauptpasswort zu überprüfen. Der Registrierungsbutton ist deaktiviert, bis das Formular gültig ist. aber das Formular wird nie gültig. Der password_c
Eingang ist immer ungültig.AngularJs- Formularvalidierungsrichtlinie. Die Passwortbestätigung ist immer ungültig
<ion-view view-title="Register Form">
<ion-content>
<form ng-submit="signup()" name="regForm" novalidate>
<div>
<label for="email" .....></label>
<label for="password" ......></label>
<label for="password_c">
<input type="password" id="password_c" name="password_c" ng-model="registerForm.password_c" valid-password-c required>
<span ng-show="regForm.password_c.$error.required && regForm.password_c.$dirty">Please confirm your password.</span>
<span ng-show="!regForm.password_c.$error.required && regForm.password_c.$error.noMatch && regForm.password.$dirty">Passwords do not match.</span>
</label>
<button type="submit" ng-disabled="!regForm.$valid">
</div>
</form>
</ion-content>
</ion-view>
und dies ist die Richtlinie:
.directive('validPasswordC', function() {
return {
require: 'ngModel',
link: function (scope, elm, attrs, ctrl) {
ctrl.$parsers.unshift(function (viewValue, $scope) {
var noMatch = viewValue != scope.regForm.password.$viewValue
ctrl.$setValidity('noMatch', !noMatch)
})
}
}
})
ich console.log
die ng-show
Zustand; Wenn die Kennwörter übereinstimmen, wird die Bedingung undefiniert.
console.log(!regForm.password_c.$error.required && regForm.password_c.$error.noMatch && regForm.password.$dirty)
getrennt; zuerst die .required
werden undefined dann .noMatch
Sie mir das Leben gerettet :) es funktioniert –
nur zu wissen, warum in reiner AngularJS apps keine Rückkehr benötigt wird und funktioniert? wie in diesem Beispiel: http://jsfiddle.net/thomporter/UZrex/1/ –