请参阅我的plnkr:http://plnkr.co/edit/OSMtkjWGsDUz1wENtRDR?p=preview
我有3个组件:
1)App:基本形式。这包含对“迷你形式”的引用,即代码中的子控件
2)AppChild:这些代表一个“迷你形式”
3)AppOption:这些是AppChild中的单个输入控件
您可以单击“添加控件”以添加新的AppChild,然后单击“单击以添加新选项+”以将AppOption添加到AppChild。
正如您在我的plnkr上看到的那样 - 每个迷你表格(子控制)都打印出正确的表格值。
基本形式 - 可以识别正确的迷你形式。
但是如何获取它以便迷你表单值包含在基本表单值中 - 而不是空数组[]?
我在plunkr上添加了一条评论,我认为这个问题是,但我不确定这是否是原因/或如何修复它第49行
initControl() {
return this.fb.array([]);
}
答案 0 :(得分:3)
您可以创建FormGroup
而不是FormArray
。
<强> app.component.ts 强>
initControl() {
return this.fb.group({});
}
然后在app-sub-form component
应用子form.component.ts 强>
ngOnInit() {
// We've already had FormGroup, so we can add control to it
this.subForm.addControl('subOptions', this.fb.array([]));
this.addOptions();
}
<强> Plunker Example 强>
答案 1 :(得分:-1)
不是一个完整的解决方案,但是请看这个例子。它可能会给你一些想法。
https://scotch.io/tutorials/how-to-build-nested-model-driven-forms-in-angular-2