在我的表单中添加了一个FormGroups数组后,我无法在FormGroup内部调用setValue
这是我尝试过的:
this.formGroup.controls.formArray.get('input').setValue('test');
和
this.formGroup.get('formArray').get('input').setValue('test');
哪个抛出:
Cannot read property 'setValue' of null
TS:
get formArray(): AbstractControl | null { return this.formGroup.get('formArray'); }
this.formGroup = this.fb.group({
formArray: this.fb.array([
this.fb.group({
input: [null, [Validators.required]]
}),
this.fb.group({
anotherInput: [null, [Validators.required]]
}),
])
});
我在做什么错了?
答案 0 :(得分:2)
表单数组的控件是AbstractControls的数组,在这种情况下,您在该数组中具有组,因此您需要作为一个数组进行访问:
this.formGroup.get('formArray').get('0').get('input').setValue('test');
在与所需组相对应的表单数组的索引处运行get,然后可以在该数组上的组上访问控件。
您可能还想更改您的吸气剂:
get formArray(): FormArray { return this.formGroup.get('formArray') as FormArray; }