Rod,当我们管理 FormGroup 的 FormArray 时(我想象你想以这种方式管理数组
data=[{position:..category},{position:..,category:...}]
首先我们用数组创建一个 getter
get categoryArray()
{
return this.feedstockForm.get('feedstock') as FormArray
}
并创建一个返回带有 formArray 值的 FormGroup 的函数
getCategoryGroup(data:any=null)
{
data=data ||{position:0,category:''}
return new FormGroup({
position:new FormGroup(data.position),
category:new FormGroup(data.category)
})
}
请注意,此函数返回一个 FormControls 的 FormGroup,其中包含我们传递的对象“数据”的值,如果我们不传递参数,则返回一个空 FormGroup
所以,我们可以像这样创建我们的 formGroup
this.feedstockForm=new FormGroup(
{
new FormArray(data.map(x=>this.getCategoryGroup(x)
})
此外,要向 FormArray 添加新元素,您可以简单地(看看我们如何使用定义之前的两个函数)
addElement(){
this.categoryArray.push(this.getCategoryGroup()))
}