2014-03-29 47 views
0

我是絕對新angularjs框架,並學習過濾現在。我爲貨幣寫了一個簡單的過濾。過濾參數之間的差異

我的代碼如下:

{{99.9 | currency | number:0 }} 

但是,這並不爲我工作,並沒有出現在瀏覽器中,然後我改變了我的代碼:

{{99.9| number:0 | currency }} 

現在,我得到的結果但它不是我的期望:$ 100.00

,因爲我知道,number:0必須給我結果爲:$ 100

我想知道過濾參數的連續之間有什麼區別嗎?

感謝您的回覆。

回答

1

將過濾器連續地應用於表達式,方法是使用它們並通過管道|分隔。

{{ 99.9 | currency | number:0 }} 

以上適用,貨幣濾波器上99.9然後應用number濾波器用0精度。由於貨幣過濾器會將99.9修改爲99.90美元,因此數字過濾器無法理解,並且無法應用過濾器。如上所述使用

在另一方面,

{{ 99.9 | number:0 | currency }} --> $100.00 

,數濾波器舍數99.9100,然後將貨幣濾波器應用於看到$100.00到底。

什麼,你最終需要將

{{ 99.9 | number:1 | currency }} --> $99.90 

,如果你想保持精度。

瞭解更多關於in-bult filters不同類型的信息。

1

讓我們來看看這個plunkr。希望它能幫助你理解

+0

謝謝@przno。但我怎樣才能得到100美元的結果? –

+1

啊,你想沒有美分。 「貨幣」過濾器中建立的角度總是增加美分。創建你自己的過濾器而不用美分,從angular的[source](https://ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular.js)中的原始單功能'currencyFilter'獲得靈感。查看返回行中的最後一個參數,它是'2' - 'fractionSize' – przno