1

我最近在 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;
            })
        }
    };
});

4

2 回答 2

0

我看不出这有什么用,但你当然可以valdrProvider.addConstraints()在你认为合适的时候打电话。在link: function ($scope, valdrProvider)您可以访问提供程序。

于 2016-02-11T19:48:24.357 回答
0

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

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

于 2016-10-31T12:40:04.880 回答