如何从angular4的表单中删除formGroup?

时间:2018-07-23 12:31:34

标签: angular angular2-forms

我正在使用模板驱动的表单,我想从表单控件中删除formGroup。我怎样才能做到这一点?我的表单中有以下控件

enter image description here

如您在此图像中看到的,我有一组formControls和一个formGroup。我要删除formGroup,我该怎么办?

我能够像这样在formGroup内删除formControl

const ymmtGroup = <FormGroup>this.form.controls['someGroup'];
ymmtGroup.removeControl('someControl');

但不知道如何删除formGroup本身 更新1

我做了这样的事情,只是让我知道这是否正确 var formControls = this.form.controls; 删除formControls.someGroup;

2 个答案:

答案 0 :(得分:3)

在您的示例中,this.form本身就是FormGroupsomeGroup只是this.form的控件(每个表单组可能有另一个表单组作为其子控件)。 FormGroup具有removeControl()功能,如下所示:

  removeControl(name: string): void {
    if (this.controls[name]) this.controls[name]._registerOnCollectionChange(() => {});
    delete (this.controls[name]);
    this.updateValueAndValidity();
    this._onCollectionChange();
  }

,并且您已经使用过。因此,只需尝试:

this.form.removeControl('someGroup');

答案 1 :(得分:2)

尝试这样的事情:

删除表单组的正确方法

export class AppComponent  {
  myForm: FormGroup;

  constructor(private fb: FormBuilder){
    this.createForm();
    this.removeGroup();
    console.log(this.myForm.value)

  }

  createForm(){
    this.myForm = this.fb.group({
      parentGroup: this.fb.group({
        childGroup: this.fb.group({
          control1: null,
          control2:null,
          control3:null
        })
      })
    })
  }

  removeGroup(){
    this.myForm.removeControl('parentGroup');
    this.myForm.updateValueAndValidity();
  }
}