カスタムバリデーターを作成する場合は、それらをngModelControllerの$ validatorsフィールドに追加する必要があります。例えばユーザーが入力フィールドから離れてクリックするまで、あなたがエラーを表示したくない場合は、テンプレートは、あなただけの入力要素
<input ng-model="strongSecret" strong-secret name="strongSecret"/>
上でそれを使用する必要があります代わりに、あなたの指示を与えるのも
angular.module('app').directive('strongSecret', function() {
return {
restrict: 'A',
require: 'ngModel',
link: function(scope, element, attr, ctrl) {
ctrl.$validators.uppercaseValidator = function(value) {
return /[A-Z]/.test(value);
}
ctrl.$validators.numberValidator = function(value) {
return /[0-9]/.test(value);
}
ctrl.$validators.sixCharactersValidator = function(value) {
return value.length === 6;
}
}
};
});
あなたはこの
<ul ng-if="sampleForm.strongSecret.$touched" class="error-msgs" ng-messages="sampleForm.strongSecret.$error">
...
</ul>
ワーキングjsFiddleを行うことができます:https://jsfiddle.net/e81kee9z/2/
出典
2016-05-07 19:15:13
rob
より多くのコードを追加してください。それで、あなたがしようとしていることを理解することができます。 – Ashot