使用AngularJS自定义字段验证

时间:2014-11-20 13:02:15

标签: javascript angularjs validation angularjs-directive

我正在使用$asyncValidators来验证字段,但希望仅在字段失去焦点而不是每次更改时触发它。这是可能的,还是我必须使用$asyncValidators以外的其他东西? 使用$asyncValidators的代码示例(取自documentation

ngModel.$asyncValidators.uniqueUsername = function (modelValue, viewValue) {
    var value = modelValue || viewValue;

    // Lookup user by username
    return $http.get('/api/users/' + value).
        then(function resolved() {
            //username exists, this means validation fails
            return $q.reject('exists');
        }, function rejected() {
            //username does not exist, therefore this validation passes
            return true;
        });
};

1 个答案:

答案 0 :(得分:1)

我认为您可以使用ngModelOptions指令来实现这一目标。

ng-model-options="{ updateOn: 'blur' }"

您可以强制您的模型进行评估"仅限某些预定义事件。 在您的情况下,您希望在离开字段时对其进行评估,以及blur事件。

Official documentation of ngModelOptions directive