setValue用法与一组FormGroups

时间:2019-07-26 17:53:27

标签: angular angular-reactive-forms formarray formgroups

在我的表单中添加了一个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]]
            }),
        ])
    });

我在做什么错了?

1 个答案:

答案 0 :(得分:2)

表单数组的控件是AbstractControls的数组,在这种情况下,您在该数组中具有组,因此您需要作为一个数组进行访问:

this.formGroup.get('formArray').get('0').get('input').setValue('test');

在与所需组相对应的表单数组的索引处运行get,然后可以在该数组上的组上访问控件。

您可能还想更改您的吸气剂:

get formArray(): FormArray { return this.formGroup.get('formArray') as FormArray; }