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/
は、どのようにパスワードの検証は行われていますか? $ parser.unshiftは何をしますか?どのようなテスト(viewValue).....の使用ですか? 私は以下
グレート答えをコーディングハッピー:しかし、私はあなたにもこの便利なブログを読むべきだと思います。受け入れられるべきである。 – hitokiri82
$ parsersは配列です(つまり、標準のjavascript型で、Angularに固有のものではありません)。 unshiftはJavascript Arrayプロトタイプのネイティブメソッドなので、 "Array.unshift()のこの答えのコメントはリストの先頭に入れます..." 初心者が混乱する可能性があるので、それは重要な違いです角度のあるものとネイティブJSのものとの間にあります。 – dudewad