Angular JS数字过滤器

Angular JS number filter

本文关键字:过滤器 数字 JS Angular      更新时间:2023-09-26

我在Angular中有以下表达式:

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

其中CCD_ 1是我的控制器上的函数。这按预期进行,并将数字结果截断为小数点后2位。

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

为了绕过这一点,我尝试在getFieldValue中移动过滤器,并仅将其应用于数值结果。要做到这一点,我需要一种在Javascript中指定过滤器的方法,而不是在HTML中指定表达式。根据文件,这是可能的,但很难解释。

这是我的尝试:

HTML:

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

getFieldValue:的一部分

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

这不起作用,我得到的似乎是一个空字符串回来。我该如何正确地做到这一点?

像这样使用

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

请参阅number过滤器的文档。

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

angularjs 中的数字滤波器