angular - 使用 FormBuilder 设置 FormArray 值的语法是什么
问题描述
我无法弄清楚如何在使用FormBuilder
. 看起来它应该相当明显,但我似乎无法让它发挥作用。我正在构建一个表格:
buildForm() {
const controlArray = this.redirectPortsForm.get('redirectPortsArray') as FormArray;
Object.keys(this.ports).forEach((i) => {
controlArray.push(
this.formBuilder.group({
//port_entry: new FormControl({ value: this.ports[i].redirect_text, disabled: false })
port_entry: new FormControl({ value: "", disabled: false })
})
)
})
console.log(controlArray.controls)
}
我通过有意将其设置为空来注释掉用于测试的行,因此当我成功设置它时会很明显。我有一个循环,我想在其中设置值。这是一个简化版本:
const controlArray = this.redirectPortsForm.get('redirectPortsArray') as FormArray;
for (const [i, port] of ports.entries()) {
controlArray.controls[i].patchValue({value: i.toString()});
}
我已经尝试了很多变体,但这是最新的。还有更多的东西吗?我错过了一些明显的东西吗?该代码不会引发任何错误,但也不会修补这些值。
解决方案
因为你FormGroup
有这个结构{ port_entry: new FormControl(...) }
,patchValue
' 的论点应该是{ port_entry: i.toString() }
。
推荐阅读
- ios - 默认详细视图 uisplitview
- maven - (org.mule.api.transformer.TransformerException)
- python-3.x - ImportError:无法导入名称“评估”(来自意外导入评估)
- amazon-web-services - Lambda 上的 AWS SES - 无法(静默)发送电子邮件
- python - Tkinter 标签在时间睡眠后没有出现
- google-drive-api - 如何恢复永久删除的谷歌驱动器文件
- javascript - 如何从导航选项中的文本输入更新本机组件的状态?
- recursion - c中的递归函数有问题
- vba - 循环中的 VBA 变量 - BlueZone 仿真
- terraform - 未使用 Terraform 和 vSphere 重新创建的资源