私は正しくこれをanglejsの公式ドキュメントを参照して行っています。 は、しかし、私は$setValidity()
メソッドを使用して妥当性を設定ディレクティブのリンク方法、で、それは{{formname.controlname.$error.validationErrorKey}}
angularjsでカスタムディレクティブを作成する
は私がやっているエラー、または間違いを追跡するために私を助けてください使用してビュー部分に反映されません。ここでは、事前に
おかげ
<form name="form" novalidate>
URL <input type="text" ng-model="myURL" name="myURL" my-url /> {{form.myURL.$error.myUrlError}}
<span class="errorMessage" ng-show="form.myURL.$dirty && form.myURL.$error.myUrlError">
please enter correct url
</span>
</form>
validationModule.directive("myUrl", function($window) {
//return Directive Definition Object (DDO)
return{
restrict:"A",
require: 'ngModel',
link: function(scope, elm, attrs, ctrl) {
elm.bind('blur',function() {
if (ctrl.$isEmpty(ctrl.$viewValue)) {
console.log('isEMpty-' + new Date());
ctrl.$setValidity("myUrlError", true);
} else {
var URL_REGEXP= /https?:\/\/(?:www\.|(?!www))[^\s\.]+\.[^\s]{2,}|www\.[^\s]+\.[^\s]{2,}/;
if (URL_REGEXP.test(ctrl.$viewValue)) {
console.log("valid-" + new Date());
ctrl.$setValidity("myUrlError", true);
} else {
console.log("invalid-" + new Date());
ctrl.$setValidity("myUrlError", false);
}
}
}); //end if 'blur' event listener
}//end of link function
};//end of DDO
});