angular - Angular 表单绑定时强制值类型
问题描述
我们在 Angular 中有一个表单,它有一个显示项目列表的选择:
<select formControlName="koppelingTypeId" id="KoppelingTypeId" class="form-control">
<option value="">Selecteer een type</option>
<option [value]="koppeling.koppelingTypeId" *ngFor="let koppeling of koppelingen">{{koppeling.naam}}</option>
</select>
绑定值的类型koppelingTypeId
是数字。然而,当请求表单控件的值时,我们总是将其作为字符串取回。回发到 .NET Core 端点时,这不会被视为有效值,因此会出现错误。
有没有办法强制表单将值保留为字符串?
相关,但略有不同。我们还有几个需要 Guid 值(通过正则表达式验证器强制执行)的字段,我们希望null
在字段为空时返回这些值,否则会在 .NET Core 中产生相同的反序列化问题。
谢谢
解决方案
您需要使用[ngValue]
而不是[value]
. 这将保持适当的数据类型。
<form [formGroup]="form" *ngIf="form">
<select formControlName="selectCtrl" class="form-control">
<option [ngValue]="null">Selecteer een type</option>
<option [ngValue]="link.linkId" *ngFor="let link of links">{{link.name}}</option>
</select>
推荐阅读
- node.js - Angular:如何使用 nodejs 服务器 api 在 postgres bytea 字段中保存图像
- angular - 由于类型为“Promise”,此条件将始终返回“false”
' 和 '1' 没有重叠 - json - JSON Schema中有序数组中的条件条件
- css - React 组件没有拾取 CSS 文件
- node.js - debain 10 上的 systemd 服务文件不适用于 nodejs
- gstreamer - GStreamer:来自 osxaudiosrc 的输入,超过 8 个通道
- highcharts - 使用 HighCharts 在时间序列 LineChart 中显示开始和结束日期范围
- python - QMainWindow.__init__(self)
- java - 自定义 ListView 仅显示 Cursor 中的一项
- python - Flask Sqlalchemy 按关系计数排序