link: function(scope, elm, attrs, ctrl) {
ctrl.$parsers.unshift(function(viewValue) {
scope.pwdValidLength = (viewValue && viewValue.length >= 8 ? 'valid' : undefined);
scope.pwdHasLetter = (viewValue && /[A-z]/.test(viewValue)) ? 'valid' : undefined;
scope.pwdHasNumber = (viewValue && /\d/.test(viewValue)) ? 'valid' : undefined;
if(scope.pwdValidLength && scope.pwdHasLetter && scope.pwdHasNumber) {
ctrl.$setValidity('pwd', true);
return viewValue;
} else {
ctrl.$setValidity('pwd', false);
return undefined;
}
});
}
http://jsfiddle.net/adamdbradley/Qdk5M/
W powyższej ryba w jaki sposób odbywa się sprawdzanie poprawności hasła? Co robi plik $ parser.unshift? i jaki jest pożytek z testu (viewValue) .....? Mam mowa angularjs główną stronę, ale nie mógł zrozumieć niczego ... proszę kierować mi krok po kroku, jak to jest sprawdzanie ...
Jestem nowy angularjs ..
Świetna odpowiedź. Powinny zostać zaakceptowane. – hitokiri82
Dla jasności, $ parsery to tablica (czyli standardowy typ javascript, nie specyficzny dla Angular). unshift jest metodą macierzystą dla prototypu Javascript Array, dlatego komentarz w tej odpowiedzi "Array.unshift() umieścił go na początku listy ..." To ważne rozróżnienie, myślę, ponieważ początkujący mogą być zdezorientowani pomiędzy tym, co jest kątowe, a tym, co jest rodzimym JS. – dudewad