Angular JS数字过滤器

时间:2015-09-04 10:31:10

标签: javascript angularjs

我在Angular中有以下表达式:

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

其中getFieldValue是我控制器上的一个函数。这按预期工作,并将数字结果截断为2位小数。

但是,有时getFieldValue会返回字符串结果。当发生这种情况时,它根本不显示。这可能是因为将字符串截断为2位小数是没有意义的。

为了解决这个问题,我尝试在getFieldValue内部移动过滤器,并仅将其应用于数字结果。为此,我需要一种在Javascript中指定过滤器的方法,而不是HTML中的表达式。根据{{​​3}},这是可能的,但解释很难遵循。

这是我的尝试:

HTML:

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

getFieldValue的一部分:

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

这不起作用,我得到的似乎是一个空字符串。我该怎么做呢?

2 个答案:

答案 0 :(得分:2)

像这样使用

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

请参阅number过滤器的Documentation

答案 1 :(得分:1)

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

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

number filter in angularjs