angular - 使用 FormArray 在运行时创建表单控件
问题描述
想练习FormArray
所以我有这个:
myFrom: FormGroup;
constructor(fb: FormBuilder) {
this.myFrom = fb.group({
firstName: ['', Validators.required],
lastName: [''],
address: fb.group({
street: ['', Validators.required],
city: [''],
zip: [''],
}),
aliases: fb.array(
[fb.control('')]
)
});
}
get aliases() {
return this.myFrom.get('aliases') as FormArray;
}
所以aliases
是在运行时使用FormArray
. 所以我添加了一个可以连接到按钮的方法:
addAnotherAlias() {
this.aliases.push(this.myFrom.control(''));
}
但是我做错了,因为错误control
不是属性myForm
,我应该controls
改用。
解决方案
OK 发现问题。控件是 FormBuilder 工厂方法的一部分。所以我应该说:
addAnotherAlias() {
this.aliases.push(this.fb.control(''));
}
推荐阅读
- javascript - 总和显示 NaN 或 0
- gmail-addons - Gmail Add-on PopToRoot 未清除历史记录
- javascript - 如何区分类中的每个复选框元素
- javascript - 防止 position:relative 影响孩子的宽度
- android - 无法使用 JobIntentService 安排警报
- java - Spring Boot 应用程序端点返回 403
- mysql - 如何应用约束和使用 NO Action 规则意味着不采取任何行动
- python - 无法将 JSON 放入 InfluxDB
- powerbi - 我们能否在没有 Microsoft Azure 的情况下在 Web 应用程序中创建 Power BI Embedded 仪表板/报告?
- python - 如何在单个 ZMQ 发送请求中同时发送图像(ndarray)和字符串数据