angularjs의 공식 문서를 참조하여 올바르게 수행했습니다. 는하지만 $setValidity()
방법을 사용하여 유효성을 설정 지시어의 연결 방법, 그것은 {{formname.controlname.$error.validationErrorKey}}
angularjs에서 사용자 지정 지시문을 만듭니다.
내가 뭐하는 거지 오류 또는 실수를 추적하기 위해 도와주세요 사용하여 볼 부분에 반영되지 않습니다.
이 각도elm.bind('blur',function(){
가 JQuery와 이벤트에 대한 아무것도 몰라 : 사전 여기
<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
});