我在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];
}
这不起作用,我得到的似乎是一个空字符串。我该怎么做呢?
答案 0 :(得分:2)
答案 1 :(得分:1)
var isnum = angular.isNumber(field[aggregate]);
if(isnum){
fieldValue = $filter('number')(field[aggregate], 2)
}else{
fieldValue = field[aggregate];
}