在模板驱动的方法中,我可以:
<form #templateDrivenForm="ngForm" (ngSubmit)="submitForm(templateDrivenForm.value)>
<input name="input1" ngModel="value1" />
<input *ngIf="false" name="input2" ngModel="value2"/>
</form
,它只会传入{ input1: "value1" }
,因为这是表单在模板中唯一的输入。
如何在反应性方法中实现相同目标?
如果我有
var reactiveForm = this.formBuilder.group({
input1: ['value1'],
input2: ['value2']
})
如果{ input1: "value1" }
上有input2
,我将需要一种简单的方法来获取*ngIf="false"
。
我希望在将其传递给API之前不必手动去除这些值。
答案 0 :(得分:1)
如docs
所述对于已启用的FormGroup,已启用的控件的值作为对象,具有组中每个成员的键/值对。
我们可以利用此功能来实现您的用例。当您使用ngIf隐藏输入时,同时可以禁用与输入关联的formControl。因此,当您提交表单FormGroup.value时,它将仅返回可见控件的已启用控件的值。
这是一个简单的演示:
https://stackblitz.com/edit/angular-uivptc