다음은 ng-messages (angular 1.3에서 사용 가능) 및 사용자 지정 지시문을 사용하는 예입니다.
사용자가 입력 필드를 처음 떠날 때 유효성 검사 메시지가 흐리게 표시되지만 값을 수정하면 유효성 검사 메시지가 즉시 제거됩니다 (더 이상 흐리게 표시되지 않음).
자바 스크립트
myApp.directive("validateOnBlur", [function() {
var ddo = {
restrict: "A",
require: "ngModel",
scope: {},
link: function(scope, element, attrs, modelCtrl) {
element.on('blur', function () {
modelCtrl.$showValidationMessage = modelCtrl.$dirty;
scope.$apply();
});
}
};
return ddo;
}]);
HTML
<form name="person">
<input type="text" ng-model="item.firstName" name="firstName"
ng-minlength="3" ng-maxlength="20" validate-on-blur required />
<div ng-show="person.firstName.$showValidationMessage" ng-messages="person.firstName.$error">
<span ng-message="required">name is required</span>
<span ng-message="minlength">name is too short</span>
<span ng-message="maxlength">name is too long</span>
</div>
</form>
추신. 모듈에 ngMessages를 다운로드하고 포함하는 것을 잊지 마십시오.
var myApp = angular.module('myApp', ['ngMessages']);