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

在Angular中,如何在不更改模型值的情况下格式化显示的输入值?该值必须以千位分隔符(
表示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(',', '');
    }
}