货币管道格式错误
Posted
技术标签:
【中文标题】货币管道格式错误【英文标题】: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?
【问题讨论】:
【参考方案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以上是关于货币管道格式错误的主要内容,如果未能解决你的问题,请参考以下文章
APIM:从 Azure DevOps CD 管道中的 Azure Blob 存储中检索策略 XML 失败,如收到错误,如提供的链接格式错误
NumberFormatter 在货币模式下对小负数的错误行为