我正在尝试使用Angular 6中的嵌套反应式在表行内添加多个输入。我在将TypeScript中的Form Array推送到Form Array时遇到麻烦。我已将完整代码(包括用于插入数据的虚拟服务)添加到stackblitz here
如何在addProductCombination()
方法内部实现向productCombination表单数组的添加。所需的行为是,单击“加号”按钮的表行将为我的productCombination FormArray内部的每个表单控件具有一个新的select / input元素。非常感谢您的帮助。
答案 0 :(得分:1)
您可以使用AbstractFormControl
方法从FormArray
获得一个at
实例。
因此,您可以按照以下步骤分解必须要做的事情:
records
FormArray
。at
上调用FormArray
方法,并向其传递您要从中获取AbstractControl
实例的索引。我以0
为例。AbstractControl
实例,其中有productCombination
FormArray
。因此,您现在需要访问它。这就是(<FormArray>formControl.get('productCombination'))
正在做的事情。push
方法,并向其传递要添加到其中的AbstractControl
实例。所以在代码中,它看起来像:
addProductCombination() {
let formControl = ( < FormArray > this.productBlendCodeForm.get('records')).at(0);
( < FormArray > formControl.get('productCombination')).push(this.initProductCombinations({}));
}