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

How to remove a formGroup from form in angular4?

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

正如您在此图中看到的,我有一组 formControl 和一个 formGroup。我想删除 formGroup,我该怎么做?

我可以像这样删除 formGroup 中的 formControl

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

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

我做了这样的事情,请告诉我这是否正确 var formControls=this.form.controls; 删除 formControls.someGroup;

尝试这样的事情:

删除表单组的正确方法

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();
  }
}

在您的示例中,this.form 本身就是 FormGroupsomeGroup 只是 this.form 的控件(每个表单组可能有另一个表单组作为其子控件)。 FormGroupremoveControl() 函数,看起来像:

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

并且您已经使用过。所以,试试看:

this.form.removeControl('someGroup');