2015-09-04 115 views
0

我在角以下表達式:角JS數濾波器

<br/><i>{{getFieldValue(teamMember.reportingData.fields, fieldname, 'meanValue' | number:2)}}</i> 

其中getFieldValue是我的控制器上的功能。這符合預期,並將數字結果截斷爲2位小數。

但是,有時getFieldValue會返回字符串結果。發生這種情況時,根本不顯示。這可能是因爲將一個字符串截斷爲2位小數沒有意義。

爲了解決這個問題,我試着移動getFieldValue裏面的過濾器,並將其應用於數字結果。爲此,我需要一種在Javascript中指定過濾器的方法,而不是HTML中的表達式。根據docs這是可能的,但解釋很難遵循。

這裏是我的嘗試:

HTML:getFieldValue的

<br/><i>{{getFieldValue(teamMember.reportingData.fields, fieldname, 'meanValue')}}</i> 

部分:

if (field.numeric) { 
    fieldValue = $filter('number')([], field[aggregate], 2); 
} else { 
    fieldValue = field[aggregate]; 
} 

這是不行的,我得到什麼似乎是一個空字符串回來。如何正確執行此操作?

回答

1

使用這樣

fieldValue = $filter('number')(field[aggregate], 2); 

number濾波器Documentation

+0

感謝。文檔頁面比我看到的過濾器文檔頁面更清晰。現在工作。 – NickJ

+0

@NickJ請接受答案:) –

+0

我會的時候它讓我:) – NickJ

1
var isnum = angular.isNumber(field[aggregate]); 

    if(isnum){ 
     fieldValue = $filter('number')(field[aggregate], 2) 
    }else{ 
     fieldValue = field[aggregate]; 
    } 

number filter in angularjs