自定义验证作为Angular中的函数

时间:2016-05-31 23:23:50

标签: javascript angularjs validation angularjs-directive angularjs-controller

在Angular中,我正在尝试验证模糊字段的值。我有一个客户列表,我想检查该字段中的模型值是否在我的客户列表中。如果没有,我想将有效性设置为假。

我知道Math.Round(result, 5); 存在,但是,我不能使用它,因为该字段是一个类型,因此必须根据模型进行更新。验证是模糊需要发生的事情。

答案似乎是:

  1. 将其作为控制器中的函数写入,并使用$ setValidity,就像在指令中一样。使用ng-blur触发输入字段中的功能。

    - 但是,我继续遇到自定义验证(如果模型值与列表中的模型值不匹配,则使字段无效)的示例仅作为指令编写。是否有自定义验证的示例作为函数编写?

  2. 编写仅在模糊时触发的指令。

  3. 但是,我无法找到执行上述任何一项操作的示例。

    是否有人将自定义验证的示例作为函数或只更新字段模糊的指令?

    我发现此链接对自定义验证非常有用,但我仍然遇到与函数和指令之间差异相同的问题:How to add custom validation to an AngularJS form?

    **我的预先工作,我不需要帮助获取uib-typeahead工作,而是随附的自定义验证

1 个答案:

答案 0 :(得分:1)

这里是模糊触发的自定义验证示例:

angular.module('myApp', [])
.directive('customValidation', function() {
    return {
        require: 'ngModel',
        link: function(scope, el, attrs, ngModel) {
            el.bind('blur', function(event) {
                scope.$apply(function() {
                    ngModel.$setValidity('customValidation', scope.name == 'test');
                });
            })
        }
    };
});

Plunk