如何从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
本身就是 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');
我正在使用模板驱动的表单,我想从表单控件中删除一个 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
本身就是 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');