在ngx-formly中的minLength验证器中设置自定义错误消息

时间:2019-07-03 15:27:49

标签: angular ngx-formly

我想创建一个带有验证的简单表单,我想将所有错误消息翻译成西班牙语。对于'required','min'和'max'验证程序,它工作正常,但是当我对'minLength'和'maxLength'进行相同操作时,没有错误消息显示。

这很奇怪,因为这些字段仍然标记为不正确(它们显示为红色),但是没有错误消息出现。消息格式化功能只是不被调用。

这是我的代码的必要部分:

    form = new FormGroup({});
    model = { email: 'email@gmail.com' };

    validation = {
        messages: {
            required: (error, field: FormlyFieldConfig) => `Este campo es obligatorio.`,
            min: (error, field: FormlyFieldConfig) => `El valor debe ser mayor o igual que ${error.min}.`,
            max: (error, field: FormlyFieldConfig) => `El valor debe ser menor o igual que ${error.max}.`,
            minLength: (error, field: FormlyFieldConfig) => `La longitud mínima es ${error.minLength}.`,
            maxLength: (error, field: FormlyFieldConfig) => `La longitud máxima es ${error.maxLength}.`
        }
    };

    fields: FormlyFieldConfig[] = [ {
        fieldGroupClassName: 'row',
        fieldGroup: [
            {
                key: 'reference',
                type: 'input',
                className: 'col-xs-6',
                templateOptions: {
                    label: 'Referencia',
                    type: 'string',
                    required: true,
                    minLength: 3,
                    maxLength: 30,
                },
                validation: this.validation
            } ]
    }];

1 个答案:

答案 0 :(得分:1)

有点晚了,但是验证应该是:

minlength: (error, field: FormlyFieldConfig) => `La longitud mínima es ${error.requiredLength}.`
验证名称中的

基本上是小写字母“ l”,并且作为错误属性使用了“ requiredLength”。在ngx正式版5.5.2上进行了测试