Angular - 避免 [(ngModel)] 数字输入字段的科学记数法

Angular - Avoid scientific notation for [(ngModel)] number input field

在应用程序中,我使用编辑字段来显示和修改satoshi(示例:0.00000004)。

此字段链接到带有 [(ngModel)] 的数据模型。 数据类型是数字。

Angular(或者更确切地说 javascript 或 html)在加载时以科学记数法系统地翻译它:(例如:4e-8

使用“text”或“number”的字段类型产生相同的效果。

有没有一种奇特的方法可以在不更改数据模型的情况下强制使用不科学的表示法 字段绑定到数据模型

问题的简单 javascript 示例:

const elText = document.getElementById("satoshiText");
const elNumber = document.getElementById("satoshiNumber");
elText.value =0.00000001;
elNumber.value =0.00000001;
<input id="satoshiText" type="text" /><br /><br />
<input id="satoshiNumber" type="number" />

如果您分别指定值和事件绑定而不是使用双向绑定,您可以添加管道来格式化数字:

<input [ngModel]="value | number:'1.8-8'" (ngModelChange)="value = $event">

如果您经常需要这样做,您还可以编写一个自定义表单组件,其 ControlValueAccessor 可以转换为所需的格式。