反应形式-如何仅获取视图中当前的值?

时间:2019-06-14 20:40:12

标签: angular angular-reactive-forms

在模板驱动的方法中,我可以:

<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之前不必手动去除这些值。

1 个答案:

答案 0 :(得分:1)

docs

所述
  

对于已启用的FormGroup,已启用的控件的值作为对象,具有组中每个成员的键/值对。

我们可以利用此功能来实现您的用例。当您使用ngIf隐藏输入时,同时可以禁用与输入关联的formControl。因此,当您提交表单FormGroup.value时,它将仅返回可见控件的已启用控件的值。

这是一个简单的演示:
https://stackblitz.com/edit/angular-uivptc