如果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
}
任何线索????
答案 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();
}