你能用角度做这样的事情吗?
不太可能做到这一点,因为不解析标签或其他东西
{{ 10000 | currency:"<span>$</span>" }}
http://plnkr.co/edit/WluYoe2Ltmhmhvr8BBWX?p=preview http://plnkr.co/edit/WluYoe2Ltmhmhvr8BBWX?p=preview
更不用说以某种方式分隔十进制数了..
理想的结果是
1 000 000<span class="dec">,00</span><span class="cur">€</span>
确实不可能使用任何过滤器设置,是吗..?
我可以尝试修改 Angular 的货币过滤器和formatNumber
函数,但它仍然会将其视为文本而不是 span 元素。
// 编辑
你实际上可以这样做http://plnkr.co/edit/dcEhHi8sp43564ZvC4D1?p=preview http://plnkr.co/edit/dcEhHi8sp43564ZvC4D1?p=preview
<p ng-bind-html-unsafe="10000 | currency:'<span>$</span>'"></p>
但仍然对小数一无所知
您可以创建自定义过滤器
app.filter('euro', function () {
return function (text) {
text = text.toString().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1 ");
var t = text + '<span class="desc">,00</span><span class="cur">€</span>';
return t;
};
});
<span ng-bind-html-unsafe="1000000 | euro"></span>
结果将是
1 000 000,00€
Working Demo http://plnkr.co/edit/6X2491DK4kqj8OEAAB9B?p=preview
(正则表达式由 @Paul Creasey 在他的回答中发布https://stackoverflow.com/a/1990554/304319 https://stackoverflow.com/a/1990554/304319)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)