【发布时间】:2021-05-12 15:45:47
【问题描述】:
我正在尝试格式化数字输入,以便在必要时能够显示尾随零,这在默认情况下是不可能的。所以我尝试根据this question 用一个函数覆盖 [ngModel] 绑定,结果是这样的:
<input type="number" [ngModel]="fmtNum(value)" (ngModelChange)="value = $event">
该函数只是将value 转换为格式化字符串:
fmtNum(value: number): number|string {
return formatNumber(value, 'en', '1.2-2');
}
这实际上效果很好,并且值显示正确(例如,0 => “0,00”,由于非英语语言环境而带有逗号)。不幸的是页面开始变得迟缓,我发现格式化函数基本上一直被调用。
有没有办法防止函数被一遍又一遍地调用? Angular 不应该只在输入数据发生变化时调用该函数(类似于纯管道)吗?还有其他方法可以实现格式化吗?
【问题讨论】:
标签: angular performance data-binding number-formatting