【问题标题】:Currency pipe wrong format货币管道格式错误
【发布时间】:2017-10-07 10:26:09
【问题描述】:

在我的 angular 4 项目中,我想显示一些意大利金额,所以我使用默认的标准货币管道,例如: {{amount | currency:'EUR':true}}

但它显示的数字格式如下:€12.00 这不是意大利标准,我希望是这样的:€12,00

正如我在 documentation 中看到的,管道依赖于 i18n API,并且在我的浏览器中支持 browser-support(我使用的是最新的 chrome)

使用这个:providers: [{provide: LOCALE_ID, useValue: 'it-IT'}] 正确格式化货币,但我不想要默认的 LOCALE。

那么为什么这个管道不能自动理解 LOCALE?

【问题讨论】:

    标签: angular angular-pipe


    【解决方案1】:

    像这样创建一个新管道

    import { Pipe, PipeTransform } from '@angular/core';
    
    @Pipe({
        name: 'CurrencyFilter',
        pure: false
    })
    export class CurrencyFilterPipe implements PipeTransform {
        transform(items: number): any {
            var OrigionalValue = items;
            var stringValue = OrigionalValue.toString(); // to get comma we must convert it to string 
            var CommaValue = stringValue.replace('.', ',');
            var finalValue = "€" + CommaValue;
            return finalValue;
        }
    }

    {{金额 |货币过滤器}}

    【讨论】:

    • 这只解决了这种情况的问题...它不能解决任何语言的问题,我需要一个基于 Locale_Id 有效的解决方案
    • @Alessandro 你能看看github.com/angular/angular/issues/11820
    猜你喜欢
    • 1970-01-01
    • 2017-10-09
    • 1970-01-01
    • 1970-01-01
    • 2018-07-18
    • 2014-12-13
    • 2015-10-24
    • 1970-01-01
    相关资源
    最近更新 更多