Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 如何使用角度货币过滤器为货币指定不同于默认值的区域设置?_Angularjs_Localization_Currency - Fatal编程技术网

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

Angularjs 如何使用角度货币过滤器为货币指定不同于默认值的区域设置?,angularjs,localization,currency,Angularjs,Localization,Currency,在我们的应用程序中,我们将angular用于i18n/l10n。很好用 但是有一个问题-有时用户需要查看与区域设置对齐的信息,与当前的信息不同。更具体的是货币。例如,用户的区域设置为de,他们打开一个目录,目录中的商品价格以美元为单位。当然,我可以明确指定货币符号: {{item.Price.Value | currency : "$" : 2 }} 但这不是一个非常优雅的解决方案,因为用户将看到: 349,99 $ 格式不正确。正确的答案是: $349.99 因此,我不想只更改货币符号,

在我们的应用程序中,我们将angular用于i18n/l10n。很好用

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

{{item.Price.Value | currency : "$" : 2 }}
但这不是一个非常优雅的解决方案,因为用户将看到:

349,99 $
格式不正确。正确的答案是:

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


是否可以使用Angular currency筛选器,或者我应该使用自己的自定义筛选器?

查看源代码后,我确定Angular使用“undefined”作为使用默认本地货币的筛选器的参数触发器。(参见第1.2.15节第14370行周围)

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

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

{{item.Price.Value | currency : undefined : 2 }}
也就是说,这里指定的2位小数是角度默认值。 使用以下过滤器还可以获得2位小数:

{{item.Price.Value | currency}}