Angularjs 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

我想在Angular 1.3+中创建一对自定义字数验证器,我可以向其传递最小/最大值,例如,类似于以下内容:

<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;
        });

    }
};
});