我正在使用模板驱动的表单,我想从表单控件中删除formGroup。我怎样才能做到这一点?我的表单中有以下控件
如您在此图像中看到的,我有一组formControls和一个formGroup。我要删除formGroup,我该怎么办?
我能够像这样在formGroup内删除formControl
const ymmtGroup = <FormGroup>this.form.controls['someGroup'];
ymmtGroup.removeControl('someControl');
但不知道如何删除formGroup本身 更新1
我做了这样的事情,只是让我知道这是否正确 var formControls = this.form.controls; 删除formControls.someGroup;
答案 0 :(得分:3)
在您的示例中,this.form
本身就是FormGroup
。 someGroup
只是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();
}
}