如何使用 Angular 货币过滤器为货币指定不同于默认的语言环境?
How to specify locale different from default for currency with Angular currency filter?
在我们的应用程序中,我们将 angular 用于 i18n/l10n。它工作正常。
但有一个问题 - 有时用户需要查看与区域设置一致的信息,而不是当前的信息。更具体 - 货币。例如。 - 用户的区域设置为 de-de,他们打开了一个商品价格以美元为单位的目录。当然,我可以明确指定货币符号:
{{item.Price.Value | currency : "$" : 2 }}
但这不是一个非常优雅的解决方案,因为用户会看到:
349,99 $
格式不正确。正确的是:
9.99
所以,我不想只更改货币符号,而是要更改特定字段的整个货币格式,并根据当前区域设置将页面上的其余部分本地化。
是否可以使用 Angular 货币过滤器,还是我应该使用自己的自定义过滤器?
查看源代码后,我确定 Angular 使用 'undefined' 作为使用默认本地货币的过滤器的参数触发器。 (参见 Angular 1.2.15 中的第 14370 行)
因此,当链接过滤器时,您可以通过提供 undefined
作为参数来获取默认值。
对于您来说,以下内容应该可以满足您的需求:
{{item.Price.Value | currency : undefined : 2 }}
也就是说,您在此处指定的 2 位小数是 Angular 默认值。
您还可以使用以下过滤器获得 2 位小数:
{{item.Price.Value | currency}}
在我们的应用程序中,我们将 angular 用于 i18n/l10n。它工作正常。
但有一个问题 - 有时用户需要查看与区域设置一致的信息,而不是当前的信息。更具体 - 货币。例如。 - 用户的区域设置为 de-de,他们打开了一个商品价格以美元为单位的目录。当然,我可以明确指定货币符号:
{{item.Price.Value | currency : "$" : 2 }}
但这不是一个非常优雅的解决方案,因为用户会看到:
349,99 $
格式不正确。正确的是:
9.99
所以,我不想只更改货币符号,而是要更改特定字段的整个货币格式,并根据当前区域设置将页面上的其余部分本地化。
是否可以使用 Angular 货币过滤器,还是我应该使用自己的自定义过滤器?
查看源代码后,我确定 Angular 使用 'undefined' 作为使用默认本地货币的过滤器的参数触发器。 (参见 Angular 1.2.15 中的第 14370 行)
因此,当链接过滤器时,您可以通过提供 undefined
作为参数来获取默认值。
对于您来说,以下内容应该可以满足您的需求:
{{item.Price.Value | currency : undefined : 2 }}
也就是说,您在此处指定的 2 位小数是 Angular 默认值。 您还可以使用以下过滤器获得 2 位小数:
{{item.Price.Value | currency}}