10

我有这个表单组:

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

问题是:

如何通过函数以编程方式将新的表单控件(名为school_city)添加到特定的 *group” ?FormArray

4

1 回答 1

18

要为 内部的每个组添加一些控件FormArray,您可以执行以下操作:

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

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

柱塞

编辑#1

正如 OP 现在解释说他想将其添加control到特定组:

您必须传递要添加的组的索引control

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

  group.addControl('school_city', this.fb.control(''));
}
于 2017-06-11T22:16:32.350 回答