如何以角度4动态形式删除验证器

时间:2017-12-28 10:46:05

标签: angular forms validation

我有以下表单组。

this.rForm = fb.group({
'categoryName': [null, Validators.required],
'categoryImage': [null, Validators.required],
'mainCategoryId': [null, Validators.required],
'subCategoryName': [null, Validators.required]
});

“mainCategoryId”指的是下拉列表。当我在该drowpdown中更改值时,根据该值,我想保留或删除“subCategoryName”的验证器。然后我在ngOnInit()中使用下面的代码。

this.rForm.get('mainCategoryId').valueChanges.subscribe(
    (mainCategoryId) => {
       if(!this.isSub){
          this.rForm.get('subCategoryName').clearValidators();
          this.rForm.get('subCategoryName').updateValueAndValidity;
       }
    }
 );

它在IF语句中,但它不会删除验证器。仍然需要检查。我究竟做错了什么?我只想删除所需的验证。

1 个答案:

答案 0 :(得分:1)

试试这个

this.rForm.controls['subCategoryName'].clearValidators();

或者您可以使用setvalidators并将其设置为null

this.rForm.controls['subCategoryName'].setValidators(null);