如何使用Angular货币过滤器为货币指定不同于默认值的区域设置?

时间:2016-09-01 22:08:44

标签: angularjs localization currency

在我们的应用程序中,我们使用角度为i18n / l10n。它工作正常。

虽然存在问题 - 有时用户需要查看与区域设置对齐的信息,与当前区域设置不同。更具体 - 货币。例如。 - 用户的区域设置是de-de,他们打开一个商品价格为美元的目录。当然,我可以明确指定货币符号:

{{item.Price.Value | currency : "$" : 2 }}

但这不是一个非常优雅的解决方案,因为用户会看到:

349,99 $

这不是正确的格式。正确的是:

$349.99

因此,我不想只更改货币符号,而是更改特定字段的整个货币格式,并根据当前区域设置将页面上的剩余部分保留为本地化。

是否可以使用Angular货币过滤器,还是应该使用自己的自定义过滤器?

1 个答案:

答案 0 :(得分:0)

查看源代码后,我确定Angular正在使用' undefined'作为使用默认本地货币的过滤器的参数触发器。 (参见Angular 1.2.15中的14370行)

因此,在链接过滤器时,您可以通过提供undefined作为参数来获取该默认值。

对于您,以下内容应该为您提供所需内容:

{{item.Price.Value | currency : undefined : 2 }}

话虽这么说,2个小数位,这是你在这里指定的,是Angular的默认值。 您还可以使用以下过滤器获得2位小数:

{{item.Price.Value | currency}}