一组 FormGroups 的 setValue 用法

setValue usage with an array of 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]]
            }),
        ])
    });

我做错了什么?

表单数组的控件是一个抽象控件数组,在这种情况下,您在该数组中有多个组,因此您需要将其作为一个来访问:

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

运行获取你想要的组对应的form数组的索引,然后就可以访问该数组所在组上的控件了。

您可能还想更改您的 getter:

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