如何使用Javascript和Angular显示货币符号

如何使用Javascript和Angular显示货币符号,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,我正在学习Angular,在显示货币符号时遇到问题 我从api调用我的数据,该api返回如下格式的条目: "currency_formatted": "£20 Million" 在angular中,当我填充格式化字段:{{currency_formatted}}时,它输出: £20 Million 我期望的是:2000万英镑 我可以在api中返回货币符号,所以:GBP,有没有一种方法可以使用它来获得格式正确的货币,而不是传递十六进制 任何想法都将不胜感激

我正在学习Angular,在显示货币符号时遇到问题

我从api调用我的数据,该api返回如下格式的条目:

"currency_formatted": "£20 Million"
在angular中,当我填充格式化字段:{{currency_formatted}}时,它输出:

 £20 Million
我期望的是:2000万英镑

我可以在api中返回货币符号,所以:GBP,有没有一种方法可以使用它来获得格式正确的货币,而不是传递十六进制


任何想法都将不胜感激

十六进制是HTML编码的值。您可以使用
ng bind HTML
指令对HTML进行解码,例如:

<span ng-bind-html="amount"></span>
===

但是,如果您可以将金额结构为面值和货币符号:

$scope.amount = {value: 20000000, symbol: '£'};
然后,您可以使用
货币
过滤器显示金额:

<span>{{amount.value | currency: amount.symbol:0}}</span>
{{amount.value}货币:amount.symbol:0}
这将显示
“£20000000”
-而不是
”£2000万”
(因此,可能不是您需要的)

AngularJS 利用filter指令,您可以在HTML中包含以下内容:

<div>
   <span>{{ amount | currency : '£' }}</span>
</div>

{{金额|币种:'英镑'}

我在一位朋友的帮助下,通过上面新开发人员的回答,解决了这个问题。这就是我所做的:

在我的HTML中:

<span ng-bind-html="currency_formatted | safeHtml"></span>
现在返回要插入页面的html

之前发生的事情是Angular正在对结果进行消毒,并逃离&符号


希望这对别人有帮助

您可以使用
toLocaleString
制作过滤器,如:

Number(data).toLocaleString('en', { style: 'currency', currency: 'EUR', maximumFractionDigits: 0}) 用法:

{{ rent | EuroCurrency }}

是的,这是一个类型,似乎正确地格式化了十六进制,我把它放进了一个代码段,这样它就可以按预期显示。这个问题,我手头没有磅符号,只有unicode值。。。要走这条路,我需要更新整个货币表…Angular将在编译后将unicode值表示为适当的字符。 Number(data).toLocaleString('en', { style: 'currency', currency: 'EUR', maximumFractionDigits: 0})
.filter('EuroCurrency', function() {
    return function(data) {
        if (null != data) {
            return Number(data).toLocaleString('en', { style: 'currency', currency: 'EUR', maximumFractionDigits: 0});
        } else {
            return Number(0).toLocaleString('en', { style: 'currency',currency: 'EUR', maximumFractionDigits: 0});
        }
    };
});
{{ rent | EuroCurrency }}