Angular2 - Validators.compose

标签 angular angular2-forms

我在使用 Validators.compose 函数时遇到问题(没有错误,只是不验证)

这是我的代码:

  var validators = ()=> {
           var validatorArr = [];                
           validatorArr.push(Validators.required);
           validatorArr.push(Validators.maxLength(column.max));
           return Validators.compose(validatorArr);
    };
  var ctrl: Control = new Control(row.items[column.mapper], validators);
  row.form.addControl(column.mapper, ctrl);

当我使用 Validators.required 而不是 validators 函数时,验证有效。

最佳答案

您应该使用此代码,而不是使用回调来定义您的验证器:

var validatorArr = [];                
validatorArr.push(Validators.required);
validatorArr.push(Validators.maxLength(column.max));

var ctrl: Control = new Control(row.items[column.mapper], 
                   Validators.compose(validatorArr));
row.form.addControl(column.mapper, ctrl);

Control 构造函数的第二个参数对应于可以使用 compose 方法创建的函数...

关于Angular2 - Validators.compose,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36656490/

相关文章:

javascript - 有没有一种聪明的方法可以找到声明指令的位置?

angular - 如何创建具有子组件的禁用表单?

javascript - Angular 2 : How to set default value of field from parent component back to child component?

javascript - Angular 2/4 :How to use the existing component instance in a popup?

Angular2 - 从输入文件读取二进制文件并将其绑定(bind)到对象

angular - 如何在我的 FormControl 中显示一个值并保留另一个值?

ios - Angular 2 通用 ng2-bootstrap 不工作 Safari

angular - 如何在 Angular 中一对一地显示嵌套对象

angular - 如果可见,如何将验证器设置为必需?

javascript - Angular 2 Http不触发