在StackOverflow的其他例子中,有很多关于在FormArrays中使用FormGroups的问题。但我的问题是相反的。
FormArrays有一个push方法,可以实现许多事情。FormGroup确实有一个addControl方法用于添加简单的FormControls。据我所知,FormGroup没有addFormArray或addFormGroup方法。因此,我需要您的帮助。
下面是具体情况:
this.myForm = this.fb.group({
id: this.fb.control([this.book.id]),
// or short form `id: [this.book.id],`
});
稍后添加一个简单的控件很容易:
this.myForm.addControl('isbn', this.fb.control(this.book.isbn));
但是,如果要将FormArrays和FormGroups添加到现有的FormGroup中呢?例如,我想使用以下数组和对象来实现此目的:
const authors = ['George Michael', 'Aretha Franklin'];
const metaData = { description : 'Great Book', publication: 2019}
我希望添加 `authorsArray` 或 `metaData`,但仅在它们存在时进行。这就是为什么我想在以后添加它们的原因。注:请忽略验证规则。
registerControl
也可以正常工作。这两个函数都需要一个 AbstractControl 作为参数。FormGroup 扩展了 AbstractControl,因此对于 FormGroup 也应该适用。 - Joey Gough