删除AngularJS货币过滤器的十进制/分

前端之家收集整理的这篇文章主要介绍了删除AngularJS货币过滤器的十进制/分前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有没有办法从货币过滤器的输出删除十进制/美分?我正在做这样的事情:
<div>{{Price | currency}}</div>

其中输出

$1,000.00

相反,我想:

$1,000

可以使用货币过滤器吗?我知道我可以在一个数字前面加一个美元符号,我可以写我自己的过滤器,但我希望一个简单的方法存在与现有的货币过滤器。

谢谢。

更新:版本 1.3.0 – currencyFilter:将fractionSize添加为可选参数,请参阅 commit
并更新 plunker
{{10 | currency:undefined:0}}

请注意,这是第二个参数,因此您需要传入未定义以使用当前语言环境货币符号

更新:请注意,这仅适用于在号码前显示的货币符号。
从版本1.2.9它仍然硬编码到2个小数位。

Here是一个修改版本,使用angular的formatNumber副本启用0 fractionSize作为货币。

通常这应该是在区域设置定义或currencyFilter调用,但现在(1.0.4),它硬编码到2个小数位。

自定义过滤器:

myModule.filter('noFractionCurrency',[ '$filter','$locale',function(filter,locale) {
    var currencyFilter = filter('currency');
    var formats = locale.NUMBER_FORMATS;
    return function(amount,currencySymbol) {
      var value = currencyFilter(amount,currencySymbol);
      var sep = value.indexOf(formats.DECIMAL_SEP);
      if(amount >= 0) { 
        return value.substring(0,sep);
      }
      return value.substring(0,sep) + ')';
    };
  } ]);

模板:

<div>{{Price | noFractionCurrency}}</div>

例:

> Demo

更新:修正处理负值时的错误

原文链接:https://www.f2er.com/angularjs/146666.html

猜你在找的Angularjs相关文章