【发布时间】:2020-01-13 21:57:40
【问题描述】:
我有我在输入字段中使用的数字管道的工作示例:
https://stackblitz.com/edit/decimal-pipe-comma-separator-example-arg-h3gtrw?file=app%2Fshared%2Fnumber.pipe.ts
例如当我输入 11111 并在输入外部单击时,它会格式化为 11,111。但是,当我删除逗号并再次在输入外部单击时,它不会再次用逗号格式化。为什么会这样?当我调试代码时,它似乎返回了正确的值,但它显示了未格式化的数字。原始角度 DecimalPipe 似乎也是如此。我该如何解决?
我也在下面添加了管道和html代码:
import {
Pipe,
PipeTransform
} from '@angular/core';
@Pipe({
name: 'numberFormat'
})
export class NumberFormatPipe implements PipeTransform {
transform(value: number | string, minFractionDigits: number = 0, maxFractionDigits: number = 2, locale: string = 'en'): string {
return new Intl.NumberFormat(locale, {
minimumFractionDigits: minFractionDigits,
maximumFractionDigits: maxFractionDigits
}).format(Number(value));
}
}
<div>
<input type="text" [ngModel]="userNum | numberFormat" (ngModelChange)="userNum=$event" [ngModelOptions]="{updateOn:'blur'}">
</div>
【问题讨论】:
-
你试过让管道不纯吗?
-
刚刚添加 pure: false 到管道,它似乎没有帮助,或者我应该添加其他东西吗?
-
不。我认为这就是问题所在。我的互联网连接不好。我在加载 stackblitz 时遇到问题
标签: angular typescript