Angular2:如何将Validators.required设置为2个字段的通用验证

时间:2017-04-18 12:05:42

标签: angular angular2-formbuilder

我使用Angular2 ForumBulder创建表单并添加验证。在组件

的示例代码下面
this.OtpForm = this._fb.group({
    otpInput: this._fb.group({
      otpInput1: ['', Validators.required],
      otpInput2: ['', Validators.required],
      otpInput3: ['', Validators.required],
    }, { validator: this.numericValidator })
});

现在这很好用。但问题是Validators.required如何像自定义验证器numericValidator一样对所有字段都是通用的?

1 个答案:

答案 0 :(得分:3)

您可以为otpInput组再创建一个自定义验证器,例如

pandoc

并添加到此:

--volumes-from

使用Validators.compose()

组合验证器
validateAllRequired(g: FormGroup) {
    let ctrls = g.controls;
    let keys = Object.keys(ctrls);
    let valid = true;
    keys.forEach((key) => {
      let ctrl = ctrls[key];
      if (ctrl.value.trim() == '') {
        valid = false;
      }
    });
    return valid ? null : {
      validateAllRequired: {
        valid: valid
      }
    };
}

用于异步验证器使用

otpInput: this._fb.group({
  otpInput1: [''],
  otpInput2: [''],
  otpInput3: [''],
}, { validator: Validators.compose([this.numericValidator, this.validateAllRequired]) })