angular - 如何以角度传递可重用的表单数据?
问题描述
我在角度 9 中使用反应形式。我想要可重复使用的形式。因此,我为表单创建了一个单独的组件。但我不知道如何在不点击表单组件的情况下将表单值传递给另一个组件,因为我希望每个组件都有单独的按钮。如何在 app.component 中编写发送函数?
form.component.html
<form [formGroup]="form">
<div *ngFor="let prop of personProps">
<label>{{ prop.label }}:</label>
<div [ngSwitch]="prop.type">
<input *ngSwitchCase="'text'" [type]="prop.type" [formControlName]="prop.key">
<input *ngSwitchCase="'number'" [type]="prop.type" [formControlName]="prop.key">
</div>
</div>
</form>
app.component.html
<dynamic-form [formDataObj]="person"></dynamic-form>
<button (click)="send()"> click </button>
解决方案
只需使用模板引用变量(#nameVariable)
<dynamic-form #myform [formDataObj]="person"></dynamic-form>
<button (click)="send(myform)"> click </button>
在发送函数中,您拥有动态表单的所有公共属性,例如自己的变量“表单”
send(myform:any)
{
if (myform.form.valid)
console.log(myform.form.value)
}
推荐阅读
- javascript - 当将函数从 javascript 迁移到 php 并给出相同的输入数据时,结果是不同的
- python - 使用 Poetry 对“找不到分发”pkg_resources 进行故障排除
- java - 如何为这种异步方法编写单元测试?
- python - 如何导出 Python 文件和文本文件变量?
- nginx - make/gmake 是否包含构建后的所有库?
- java - Recyclerview(未连接适配器;跳过布局)
- r - R中unnest_tokens函数中折叠参数的含义是什么
- android - 我无法运行现有的颤振项目,发生了什么?
- java - 尝试使用已破坏的生命周期创建 LifecycleCamera
- python - Django 3.0.8 URL/模板/路由问题“没有反向匹配”