我有一个对象,其中包含数字和文本值的混合。我想申请numbers
当对象是数字时(显然),过滤到对象的值。但当它不是一个数字时,我就可以直接吐出字符串。照原样,申请| number
to the value 格式化数字,但将字符串值保留为空(毕竟,它们不是数字)。
我猜它必须是一个自定义过滤器(我还需要制作)。有没有办法在执行时仅在 HTML 中执行此操作ng-repeat
?
<table>
<tr ng-repeat="(metric, metricData) in data">
<td>{{metric}}</td>
<td>{{metricData | number}}</td>
</tr>
</table>
$scope.data = { name:"this is the name",
score:48
outcome:"as expected",
attendance:820,
total:212.34
};
这是 @callmekatootie 所请求的替代版本答案,使用ng-if
(v1.1.5):
<table>
<tr ng-repeat="(metric, metricData) in data">
<td>{{metric}}</td>
<td ng-if="isNumber(metricData)">{{metricData | number}}</td>
<td ng-if="!isNumber(metricData)">{{metricData}}</td>
</tr>
</table>
这样做的优点是仅对数字元素运行过滤器。在这种情况下,这可能没有什么好处,但在其他更复杂的过滤器情况下可能很有用。回答您关于内置的其他问题angular.isNumber
,@callmekatootie 确实在作用域函数中使用了它isNumber
,它只是在视图中使用内置函数的包装器。
这是一个小提琴
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)