AngularJS:货币格式.更改分数大小,数千个分离器和分数分离器



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

价格将以磅,美元和欧元的价格显示。

我的货币过滤器似乎会自动将价格周围为2个小数点。

另外,如果货币以欧元为单位,理想情况下,我想自动将数千个分离器更改为.,将十进制分隔符更改为,

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>

这在这一点上可能无关紧要,因为原始帖子是2年前,但是Angular的"货币"过滤器以符号和分数为参数。

例如:

<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;
      }
    }])

您可能已经为您的需求解决了这个问题,但是在此处将答案放在这里,以防其他人遇到类似的问题并遇到这篇文章。

最新更新