Angularjs Angular 1.3+;中的自定义最小/最大字数验证器;?
我想在Angular 1.3+中创建一对自定义字数验证器,我可以向其传递最小/最大值,例如,类似于以下内容:Angularjs Angular 1.3+;中的自定义最小/最大字数验证器;?,angularjs,validation,Angularjs,Validation,我想在Angular 1.3+中创建一对自定义字数验证器,我可以向其传递最小/最大值,例如,类似于以下内容: <input type=text min-word-count="10" max-word-count="200"> 但是,我不知道如何定制这个示例,以便动态地将自定义值传递给它 向上述自定义验证指令传递值的最佳实践是什么?app.directive('maxWordCount',function()){ app.directive('maxWordCount', func
<input type=text min-word-count="10" max-word-count="200">
但是,我不知道如何定制这个示例,以便动态地将自定义值传递给它
向上述自定义验证指令传递值的最佳实践是什么?app.directive('maxWordCount',function()){
app.directive('maxWordCount', function() {
return {
require: 'ngModel',
link: function(scope, elm, attrs, ctrl) {
//For DOM -> model validation
var maxLimit = attrs.maxWordCount;
ctrl.$parsers.unshift(function(value){
var valid = true;
if(value){
valid = value.split(' ').length <= maxLimit;
}
ctrl.$setValidity('maxWordCount', valid);
return valid ? value : undefined;
});
//For model -> DOM validation
ctrl.$formatters.unshift(function(value) {
var valid = true;
if(value){
valid = value.split(' ').length <= maxLimit;
}
ctrl.$setValidity('maxWordCount',valid);
return value;
});
}
};
});
返回{
要求:'ngModel',
链接:函数(范围、elm、属性、ctrl){
//对于DOM->模型验证
var maxLimit=attrs.maxWordCount;
ctrl.$parsers.unshift(函数(值){
var valid=true;
如果(值){
valid=值。拆分(“”)。长度DOM验证
ctrl.$formatters.unshift(函数(值){
var valid=true;
如果(值){
valid=value.split(“”)。在本例中,值在attrs
中可用。您可以使用attrs.minWordCount
和attrs.maxWordCount
获取参数。如果您希望传递计算值而不是静态值,可以设置范围并使用=/code>(有关详细信息,请参阅角度范围帮助)。
app.directive('maxWordCount', function() {
return {
require: 'ngModel',
link: function(scope, elm, attrs, ctrl) {
//For DOM -> model validation
var maxLimit = attrs.maxWordCount;
ctrl.$parsers.unshift(function(value){
var valid = true;
if(value){
valid = value.split(' ').length <= maxLimit;
}
ctrl.$setValidity('maxWordCount', valid);
return valid ? value : undefined;
});
//For model -> DOM validation
ctrl.$formatters.unshift(function(value) {
var valid = true;
if(value){
valid = value.split(' ').length <= maxLimit;
}
ctrl.$setValidity('maxWordCount',valid);
return value;
});
}
};
});