2015-09-04 116 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