AngularJS:货币格式。更改分数大小,千位分隔符和分数分隔符

时间:2014-01-27 10:24:55

标签: angularjs internationalization currency currency-formatting

我希望将我网站中特定表格中的价格显示为小数点后3位。

价格将以英镑,美元和欧元显示。

我的货币过滤器似乎会自动将价格四舍五入到小数点后两位。

此外,如果货币是欧元,理想情况下,我想将千位分隔符自动更改为.和小数点分隔符为,

angularjs是否支持此功能?

视图

<div ng-controller="SpotController">
    <table class="header-table-spot-prices">
        <thead>
            <tr><th>Spot Prices</th><th>Price</th></tr>
        </thead>
        <tbody>
            <tr ng-repeat="spot in spots">
                <td>{{ spot.item }}</td>

                    <!-- This needs to be 3dp -->
                <td>{{ spot.price | currency:spot.currency }}</td>
            </tr>
        </tbody>
    </table>
</div>

1 个答案:

答案 0 :(得分:0)

这可能与此无关,因为原始帖子是2年前,但角度的“货币”过滤器采用符号和分数大小作为参数。

例如:

<td>{{ spot.price | currency:spot.currency : 3 }}</td>

如果没有根据货币更改分隔符的警告,将输出您要查找的内容。您可以创建自己的货币过滤器,首先使用角度过滤器,然后检查条件并更改分隔符。这个plunker说明了这一点。

.filter('myCurrency', ['$filter', function($filter){
      return function(input, symbol, fractionSize){
          input = $filter('currency')(input, symbol, fractionSize);
          if(symbol === '\u20AC'){
            var tempString = "###";
            input = input.replace(",", tempString).replace(".", ",").replace(tempString, ".");
          }
          return input;
      }
    }])

你可能已经根据自己的需要解决了这个问题,但是在这里给出答案以防万一其他人遇到类似的问题并遇到这篇文章。