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