5

我希望在我的網站內的特定表格中顯示價格至小數點後3位。AngularJS:貨幣格式。更改分數大小,千分位分隔符和分數分隔符

價格將以磅,美元和歐元顯示。

我的貨幣過濾器似乎自動將價格四捨五入到小數點後兩位。

此外,如果貨幣是歐元,理想情況下,我想自動將千位分隔符更改爲.並將小數點分隔符更改爲,

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> 

回答

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

您可能已經解決了這個滿足您的需求,而是把答案在這裏,以防萬一別人運行到類似的問題和遇到這個職位。

+0

這裏介紹的解決方案不足之處在於它只用'「。」'替換第一個'','''。因此它對於超過1000000的數字將無法正確工作。更好的解決方案是:'input = input.split(「,」)。join(tempString).replace(「。」,「,」)。split(tempString)。加入( 「」);' – nplatis