Angular 使用角度设置数字输入格式
在Angular中,如何在不更改模型值的情况下格式化显示的输入值?该值必须以千位分隔符(Angular 使用角度设置数字输入格式,angular,angular2-forms,angular-directive,angular-pipe,Angular,Angular2 Forms,Angular Directive,Angular Pipe,在Angular中,如何在不更改模型值的情况下格式化显示的输入值?该值必须以千位分隔符(”表示FR,以,“表示EN)和十进制分隔符(”,“表示FR,以表示EN)显示 当后端从数据加载初始化值时,必须格式化输入 我试过这样的方法: <input class="form-control" name="test" [ngModel]="mynumberValue" (ngModelChange)="mynumberValue=$event" (blur)="s
”
表示FR,以,“
表示EN)和十进制分隔符(”,“
表示FR,以表示EN)显示
当后端从数据加载初始化值时,必须格式化输入
我试过这样的方法:
<input class="form-control" name="test"
[ngModel]="mynumberValue"
(ngModelChange)="mynumberValue=$event"
(blur)="someCalculs()"
required
NumberFormat
>
和一根管子:
@Pipe({
name: 'number',
pure: true
})
export class NumberPipe implements PipeTransform {
@SessionStorage('user')
currentUser: User;
transform(input: any, minPrecision = 2, maxPrecision = 5): string {
if (isNaN(input) || input === null) {
return 'N/A';
}
return new Intl.NumberFormat(this.currentUser.langKey, {
minimumFractionDigits: minPrecision,
maximumFractionDigits: maxPrecision
}).format(input);
}
parseToNumber(input: string) {
if (this.currentUser.langKey === 'fr') {
return input.replace(' ', '').replace(',', '.');
}
return input.replace(',', '');
}
}
但有了这个解决方案,我的模型就不会像数字一样被认可
有什么想法吗?对于Angular 2+来说,这似乎是一件显而易见的事情,但我找不到任何实际实现这一点的方法。你有什么收获吗?
@Pipe({
name: 'number',
pure: true
})
export class NumberPipe implements PipeTransform {
@SessionStorage('user')
currentUser: User;
transform(input: any, minPrecision = 2, maxPrecision = 5): string {
if (isNaN(input) || input === null) {
return 'N/A';
}
return new Intl.NumberFormat(this.currentUser.langKey, {
minimumFractionDigits: minPrecision,
maximumFractionDigits: maxPrecision
}).format(input);
}
parseToNumber(input: string) {
if (this.currentUser.langKey === 'fr') {
return input.replace(' ', '').replace(',', '.');
}
return input.replace(',', '');
}
}