如何在anugar2中应用表单模型的条件验证

时间:2018-03-06 12:44:03

标签: angular typescript

如果this.type的值为2,我不想要Addres的验证器。

以下是表单验证的代码:

buildForm() {
     this.orgForm = this.fb.group({
     Name: [this.addUpdateModel.Name,  [Validators.required]],
     Id: ['', [Validators.pattern(this.constant.positiveIntegers), Validators.maxLength(6)]],
     Address: [this.addUpdateModel.Address,  [Validators.required]],
     });

    this.orgForm.valueChanges.subscribe(data => this.onValueChanged(data));
    this.onValueChanged(); // (re)set validation messages now
}

任何线索????

1 个答案:

答案 0 :(得分:1)

您可以使用反应形式的setValidators()方法并重置验证器。在您的情况下,代码将是这样的: -

**每当你在该函数中将this.type == 2设置为验证器为null **

  if(this.type==2){
    this.orgForm.controls.Address.setValidators(null);
    this.orgForm.get('Address').updateValueAndValidity();
}
else{
    this.orgForm.controls.Address.setValidators([Validators.required]);
    this.orgForm.get('Address').updateValueAndValidity();
}