仅当输入的数字长度为正确长度时,我才需要使用ng-model-options启动ng-model验证。
现在我设法通过 ng-model-options 和 UpdateOn:Blur 做到了这一点,然后在指令中验证链接功能的onBlur事件触发时验证了指令长度数量,但实际上我想要的是仅在输入正确长度的数字时才触发指令中的链接验证功能,
指令:
some.directive('name', ['$http', '$q', function ($http, $q) {
return {
require: 'ngModel',
link: function (scope, elm, attrs, ngModel, ngModelCtrl) {
//Check on blur event for entered value is valid
elm.on('blur', function () {
if (elm.val().length === 11) {
ngModel.$validators.foo = function (modelValue, viewValue) {
ngModel.$errorMessages.foo = 'error';}
HTML
<div ng-class="{'has-error' : form.name.$invalid && form.name.$dirty }">
<input name ng-model="formData.name" ng-model-options="{ updateOn: 'blur' }" maxlength="11"/>
</div>
*** name *是虚拟指令名称!