我在Angular中有以下表达式:
<br/><i>{{getFieldValue(teamMember.reportingData.fields, fieldname, 'meanValue' | number:2)}}</i>
其中
getFieldValue
是我的控制器上的函数。这按预期工作,并将数字结果截断为2个小数位。但是,有时
getFieldValue
返回字符串结果。发生这种情况时,它根本不会显示。这可能是因为将字符串截断到2个小数位没有意义。为了解决这个问题,我尝试将过滤器移到
getFieldValue
内,仅将其应用于数值结果。为此,我需要一种在Javascript中指定过滤器的方法,而不是在HTML中指定表达式。根据docs,这是可能的,但是难以理解。这是我的尝试:
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
过滤器的Documentation。