Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS验证指令消息参数_Javascript_Angularjs_Validation - Fatal编程技术网

Javascript AngularJS验证指令消息参数

Javascript AngularJS验证指令消息参数,javascript,angularjs,validation,Javascript,Angularjs,Validation,假设我们需要一个自定义的角度验证器,为错误消息提供参数。 例如,如果我们要创建一个验证器来计算数组的最小长度,当它无效时,消息应该是“最小长度为{0}” 现在,考虑到我们已经为此验证创建了一个自定义指令(如下所示),我们如何将验证指令函数中的“{0}”参数提供给验证消息 这里有一个用于以下内容的自定义验证指令: .directive('arrayLength', function () { return { require: 'ngModel', link

假设我们需要一个自定义的角度验证器,为错误消息提供参数。 例如,如果我们要创建一个验证器来计算数组的最小长度,当它无效时,消息应该是“最小长度为{0}”

现在,考虑到我们已经为此验证创建了一个自定义指令(如下所示),我们如何将验证指令函数中的“{0}”参数提供给验证消息

这里有一个用于以下内容的自定义验证指令:

.directive('arrayLength', function () {
    return {
        require: 'ngModel',
        link: function (scope, elm, attrs, ctrl) {
            ctrl.$validators.arrayLength = function (modelValue, viewValue) {
                return modelValue >= parseInt(attrs.arrayLength);
            };
        }
    };
});
在这里,我们要宣布的信息是:

.run([
    'defaultErrorMessageResolver',
    function (defaultErrorMessageResolver) {
        defaultErrorMessageResolver.getErrorMessages().then(function (errorMessages) {
            errorMessages['arrayLength'] = 'Minimum length is {0}';
        });
    }
]);
所以。。。有什么想法吗

我肯定这不是一门火箭科学。只是我是个新手


提前谢谢。

看看这个。可以通过自己的策略传递消息(“messageerror”)

var-app=angular.module(“myApp”,[]);
函数Fiddle($scope){}
app.directive('input',function(){
返回{
限制:'E',
范围:{
minlength:“@minlength”
},
链接:函数(作用域、elm、attr、ctrl){
elm.bind('keyup',function(){
var valid=(this.value&&this.value.length>=scope.minlength);
如果(!有效){
if(elm.parent().find(“span”).length==0)
elm.parent().append(“Min是”+scope.minlength+”);
}否则
elm.parent().find(“span”).remove();
});
}
};
});

  • 最小3个字符:

plunker或jsfiddle是否使用运行代码?是。这里有一把小提琴:只要按一下就可以了!!并注意显示的消息。{0}参数为空。不确定我是否理解了您的代码,但在我看来,它并没有传递参数,而是传递了整个消息。如果是这样的话,那就不是我要寻找的。我在指令中使用params时,在代码中传递mensageerror以进行演示。现在看!在示例中,param用于验证和显示消息我非常感谢您的回答,但仍然。。。不是我想要的。您的解决方案可以工作,但不提供原始消息。相反,它附加了HTML。我提供了一个提琴()以便更好地了解我在寻找什么。谢谢!嘿,伙计,我在JSFIDLE中看到了你的建议,但是你的想法是使用工厂来创建一个“验证器数据”。是的,这是可能的,但这很奇怪,并不常见。工厂用于创建与控制器共用和共享的服务。一个例子是Access rest服务的服务层。验证视图中的元素是常用的指令,对吗?然后可以使用一个指令验证多个字段。所以您使用字段中的属性来验证e显示消息错误。