angular - 如何从子组件 n Angular 将 FormGroup 对象作为输出发送到父组件
问题描述
我在表单中工作,我有两个组件:我的子组件包含这个 formGroup Object :
employeeForm : FormGroup;
this.employeeForm = new FormGroup({
firstName:new FormControl(),
lastNAme:new FormControl(),
email:new FormControl()
});
子组件只包含表单的一小部分,父组件包含带有提交按钮的全局表单。
我的问题是:我想在父组件中单击提交按钮时从子组件中获取表单组并将其推送到父组件中的全局表单。
我在我的子组件中添加输出:
@Output() onFormGroupChange: EventEmitter<FormGroup> = new EventEmitter<FormGroup>();
但我不知道如何让父 Comp 中的提交按钮从我的子组件中获取 FormGroup 对象并继续推送数据......
您对如何实现这一目标有任何想法吗?
提前致谢。
此致。
解决方案
您可以将父表单传递给子组件:
<form [formGroup]="parentForm">
<child-form [form]="parentForm"></child-form>
<button (click)="submit()">Submit</button>
</form>
在 child-form.component.ts 中,可以使用 addControl:
@Input() form; // this is parentForm
constructor(private fb: FormBuilder) { }
ngOnInit() {
this.form.addControl('firstName', new FormControl('', Validators.required));
}
单击提交时,您也可以从子组件中获取表单数据:
this.parentForm.value
推荐阅读
- php - 防止 Php/Symfony 对“真”值进行类型转换
- javascript - Angular:使用动态循环输入设置反应形式
- python - 在 python 中定义字典得到 TypeError: unhashable type: 'dict'
- qubole - 如何将 .py 文件导入 Qubole?
- javascript - 在 Angular 中预览多个图像和视频
- python - nRF52840 调试 SWD Raspberry Pi 3B+ flash_writing 错误
- mysql - 嵌套的 MySQL 查询挂起
- docker - Docker 无法从命令发送电子邮件
- flutter - 使容器可点击
- c# - C#在没有确认的情况下将一位信息(=布尔值)发送到另一个进程