Angular 角度形状绑定时的力值类型

Angular 角度形状绑定时的力值类型,angular,Angular,我们在Angular中有一个表单,该表单有一个显示项目列表的select: <select formControlName="koppelingTypeId" id="KoppelingTypeId" class="form-control"> <option value="">Selecteer een type</option> <option [value]="koppeling.koppelingTypeId" *ngFor="l

我们在Angular中有一个表单,该表单有一个显示项目列表的select:

<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>

选择een类型
{{koppeling.naam}
绑定值
koppelingTypeId
的类型是number。然而,当请求表单控件的值时,我们总是将其作为字符串返回。当发回.NET核心终结点时,该值不被视为有效值,因此会出现错误

有没有办法强制窗体将值保留为字符串

相关,但略有不同。我们还有几个需要Guid值的字段(通过Regex validator强制执行),我们希望在字段为空时返回
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>

选择een类型
{{link.name}

好吧,数字是有答案的。但我不知道它是否适用于所有数据类型。答案是。哦,我看到下面有人给了你类似的答案…这能回答你的问题吗?你完全赢了互联网!快速提问,您是否知道一种方法可以使空文本框产生
null
作为值,而不是空字符串
'
?同样的想法,确保使用[ngValue]并将值设置为null-我编辑了代码示例以演示。stackblitz也显示了它的工作原理。对于我在使用文本框时所指的空值。当您在文本框中输入内容并再次清除时,请选中此闪电,该值将变为
'
。它希望它再次变成
null
。啊,我明白了,我错了。不同的元素。在这种情况下,您可以订阅该控件的“valueChanges”事件,并将该值设置为null。这里的示例:感谢您与我一起思考,我最后添加了一个自定义验证器函数,用于检查控件值是否==='',如果是,则使用setValue函数将其设置为null。似乎有效。不像我说的那么漂亮,但我接受了。