【问题标题】:How to specify locale different from default for currency with Angular currency filter?如何使用Angular货币过滤器指定与默认货币不同的语言环境?
【发布时间】:2017-01-09 22:24:30
【问题描述】:

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

但有一个问题 - 有时用户需要查看与当前区域不同的区域设置的信息。更具体的 - 货币。例如。 - 用户的语言环境是 de-de,他们打开一个目录,其中包含以美元为单位的项目价格。当然,我可以明确指定货币符号:

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

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

349,99 $

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

$349.99

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

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

【问题讨论】:

    标签: angularjs localization currency


    【解决方案1】:

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

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

    对您而言,以下内容应该可以满足您的需求:

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

    话虽如此,您在此处指定的 2 个小数位是 Angular 默认值。 您还可以使用以下过滤器获得 2 位小数:

    {{item.Price.Value | currency}}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多