Мы можем использовать функции valdr.addConstraint и addValidator вне блока конфигурации?
Я недавно использую valdr в angualrjs . Я делаю директиву валидации с использованием valdr для моего приложения. я не хочу писать addconstaints и функции addvalidator с помощью json в файле app.config. я хочу написать эту часть только внутри директивы? Кто-нибудь может решить эту проблему...?
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 ответа
Я не понимаю, как это может быть полезно, но вы, конечно, можете позвонить valdrProvider.addConstraints()
всякий раз, когда вы считаете нужным. В link: function ($scope, valdrProvider)
Вы получаете доступ к провайдеру.
Проблема с именами. Angular предоставляет два способа настройки провайдеров. 1. на этапе настройки - здесь необходимо добавить суффикс "Провайдер". 2. во время выполнения - здесь вы просто получаете услугу.
+ Изменить valdrProvider
в valdr
и вы можете добавить ограничения в вашем сервисе / контроллере