如何在响应式表单中发送 *NgFor 选项选择的值

Posted

技术标签:

【中文标题】如何在响应式表单中发送 *NgFor 选项选择的值【英文标题】:How to send value of *NgFor option select in Reactive Forms 【发布时间】:2019-08-12 07:40:36 【问题描述】:

我在 Angular 中有一个表单,选择选项的数据来自 Web api。我想知道的是如何在发送时将所选值分配给表单值,此时它只是[object object]。 ngFor 语句是:

<select class="form-select" formControlName="u_address" placeholder="Enter address">
   <option value="" disabled selected>Select your option</option>
   <option *ngFor="let item of customerAddress" [value]="item">
   item.address
   </option>
</select>

那么在component.ts文件中就是:

  u_address: new FormControl(this.customerAddress),

有什么想法吗?

【问题讨论】:

你能分享你的 customerAddress 对象吗? 【参考方案1】:

试试下面的代码

[value]="item.address"

<select class="form-select" formControlName="u_address" placeholder="Enter address">
   <option value="" disabled selected>Select your option</option>
   <option *ngFor="let item of customerAddress" [value]="item.address">
   item.address
   </option>
</select>

【讨论】:

【参考方案2】:

请使用 ngValue 代替 value。

<select class="form-select" formControlName="u_address" placeholder="Enter address">
   <option value="" disabled selected>Select your option</option>
   <option *ngFor="let item of customerAddress" [ngValue]="item">
   item.address
   </option>
</select>

【讨论】:

如果你不需要一个对象,你可以使用 [value],(Shohel 写了 [value]="item.adress")。如果您需要整个对象,那么您必须使用 [ngValue]="item" 谢谢,需要对象,不知道这个修复

以上是关于如何在响应式表单中发送 *NgFor 选项选择的值的主要内容,如果未能解决你的问题,请参考以下文章

角度 6:在选择“选择”的值后尝试循环抛出一个对象(通过 *ngFor)

动态增加响应式表单

ZF2 表单验证来自选择的值,即使发送了无效值

如何动态启用/禁用响应式扩展

将验证码添加到响应式引导程序联系表单

阻止禁用和选定的选项在表单中发送空白值