2017-06-11 43 views
1

我有这种形式的组:如何添加一个新的窗体控件到嵌套窗体组?

this.form = fb.group({ 
    'teacher': [''], 
    'schools': fb.array([ 
    fb.group({ 
     'school_name': [''], 
     'school_description': [''], 
    }) 
    }) 
}); 

的问题是:

我如何编程通过功能的新的表单控件(名为school_city)增加的FormArray特定*组”

+0

是否要在'schools' *数组*中添加新的'group'?这是? – developer033

+0

我想在学校数组内部的组中添加一个名为school_city的控件。 – anonymous

+0

有什么问题?为什么它不起作用?是不是像'school_name'和其他人那样简单地放了'school_city'? – developer033

回答

3

要控制一些添加到每个组内FormArray,你可以做到以下几点:

someFunc() { 
    const formArr = this.form.get('schools') as FormArray; 

    for (const group of formArr.controls) { 
    group.addControl('school_city', this.fb.control('')); 
    } 
} 

PLUNKER

编辑#1

由于OP现在解释说,他希望将control添加到特定组:

你要通过你想要的组的索引添加control

someFunc(idx: number) { 
    const group = this.form.get(`schools.${idx}`) as FormGroup; 

    group.addControl('school_city', this.fb.control('')); 
} 
+0

Tnx让我在早上尝试一下。 – anonymous

+0

我添加了一个演示,检查它:) – developer033

+0

对不起,这个功能解决了我的问题。我可以添加控制school_city,只有当你点击添加学校城市按钮?现在每个组都添加了control_city控件。我其实不想这样。 – anonymous

相关问题