我在使用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方法创建的函数...

10-07 15:00