我们可以在配置块之外使用valdr.addConstraint和addValidator函数吗?

时间:2016-02-11 06:34:32

标签: javascript angularjs angularjs-directive valdr

我在angualrjs中新使用valdr。我使用valdr为我的应用程序制作验证指令。我不想用app.config文件中的json编写addconstaints和addvalidator函数。我只想在指令中写出那部分?任何人都可以解决这个问题......?



var app = angular.module('app', ['valdr']);

app.config(function (valdrProvider) {
    valdrProvider.addConstraints({
        'Person': {
            'firstname':
                {
                    'size': {
                        'min': 3,
                        'max': 12,
                        'message':'firstname should be between 3 to 12 '
                    },
                    'required': {
                        'message': 'This field is required.'
                    }
                },
            'firstName':
                {
                    'customValidator': {
                        'message': 'First name must be Hanueli.'
                    }
                }
        }
    });
});

app.directive('info', function () {
    return {
        restrict: 'E',
        templateUrl: 'tmpl.html',
        require: '^?valdrProvider',
        link: function ($scope, valdrProvider) {
            $scope.Person = {};
            $scope.$watch(valdrProvider.getConstraints, function (newContraints) {
                $scope.constraints = newContraints;
            })
        }
    };
});




2 个答案:

答案 0 :(得分:0)

我不知道这有什么用处,但是当你认为合适时,你当然可以打电话给valdrProvider.addConstraints()。在link: function ($scope, valdrProvider)中,您可以访问提供商。

答案 1 :(得分:0)

问题在于命名。 Angular提供了两种配置提供程序的方法。 1.在配置阶段 - 这里你必须附加“Provider”后缀。 2.在运行期间 - 在这里你只需要获得服务。

valdrProvider更改为valdr,您可以在服务/控制器中添加约束