我有一个反应形式:
myForm = this.fb.group({
...
}
我通过按钮更新字段,其功能如下:
(click)="update('someKey',someValue)"
该函数如下所示:
update(key, value) {
if (key && value && this.myForm.contains(key)) {
this.myForm.controls[key].patchValue(value)
}
}
这很好用,我可以通过发送它的名字作为密钥,为任何表单元素使用相同的函数。
然而 - 现在我的形式为fb.array:
myForm = this.fb.group({
...
items: this.fb.array([]),
}
其中:
items: {"name":"", "description":"")
我需要能够以相同的方式更新数组值。 我该如何更改
this.myForm.controls[key].patchValue(value)
要访问fb.array
?我可以传递我想要访问的数组元素的索引。
类似于:
(click)="update(index,'someKey',someValue)"
this.myForm.controls[items(index).controls[key].patchValue(value)
或者
this.myForm.get(`items${index}.${key}`).patchValue(value)
但这不正确。
答案 0 :(得分:0)
按照总是的方式,在发布问题之后我立即在另一个论坛中提出了答案(谢谢你和thereysuperstar!)
this.myForm.get(`items.${index}.${key}`).patchValue(value)
我错过了items
和${index}
那就行了!