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