如何删除angular2反应形式的FormArray

时间:2017-09-13 09:05:06

标签: angular

我在从ReactiveForm中删除FormArray时遇到了问题。

我有以下代码:

ngOnInit() {
  this.survey = new FormGroup({
    surveyName: new FormControl(''),
    sections: new FormArray([
      this.initSection(), 
    ]), 
  });      
}

initSection(){
  return new FormGroup({
    sectionTitle : new FormControl(''),
    sectionDescription : new FormControl(''),
  });
}

addSection(){
  const control = <FormArray>this.survey.controls['sections'];
  control.push(this.initSection());
}

现在删除formControl surveyName我就是

this.survey.removeControl('surveyName');

以上代码适用于surveyName。但是我可以使用什么来删除表单数组部分。我想用密钥删除整个section对象。

2 个答案:

答案 0 :(得分:4)

您应始终使用removeControl从reactiveform中删除formControl和整个 formArray。

您必须注意的事项是您应该使用ngIf来控制在从被动转换中移除后不显示已移除的元素。

参见示例 demo

答案 1 :(得分:3)

使用removeAt()方法从formarray中删除元素