在angular 4中,我正在创建一个具有类似表单数组的表单
this.formBuilder.group({ name: ['',[Validators.required,Validators.minLength(3)]],required:false,selectType: ['',[Validators.required]],items: this.formBuilder.array([this.buildItems()]) }) ... buildItems() { return this.formBuilder.group({ name: ['',[Validators.required]] });
这构建表单,我可以从表单和表单中的项目添加删除等.
我现在想要实现的是当selectType等于custom(在表单上设置为单选按钮值)时,我需要更改项名称的验证并清除其验证要求.
我已经完成了另一个表格的设置和更新
changeValidation() { if(condition){ this.form.get('name').setValidators(Validators.required); this.form.get('name').updateValueAndValidity(); } }
哪个工作正常,但我不知道如何更新表单数组上的验证.我试过了
this.items.clearValidators(); this.items.updateValueAndValidity();
我没有得到任何错误,但它也无法正常工作.哪种有意义,因为我没有针对特定的FormControl,但是当FormControls是一个数组时,我如何指定一个特定的FormControl?