注意到 angular5 表单的一个奇怪行为,使用构建器构造一个表单,该表单包含捕获额外动态数据所需的表单数组,表单数组值仅在以下情况下更新
- 在创建初始表单控件时添加到表单数组的位置
this.formBuilder.array(this.getRow())
- 触摸第一个初始控件时
Angular 5.2.0 版 实验/示例代码在这里
第 1/2 点附录
更改似乎仅在未动态添加到 FormArray 的组件上注册
表单数组元素包含初始化过程的代码
ngOnInit(){
this.form = this.formBuilder.group({
name:[null],
description:[null],
hobbies:this.formBuilder.array([this.getRow()])
});
}
getRow():FormGroup{
return this.formBuilder.group({
hobby:[null],
description:[null]
});
}
尽管很明显创建了其他控件,但它们都是空的
然而,一旦第一个元素被触摸(注意到从 fishing 到 fishing4 的变化,控制台输出现在具有剩余动态添加的控件的值),所有新的动态字段值都会传播