我有下一个代码(事件是数组):
<tr ng-repeat="event in events">
<td>
<span time-ago="{{event.TimestampSec}}"></span>
</td>
<td>
{{prepareAlertValue(event.AlertValue)}}
</td>
</tr>
时间间隔-我的自定义指令。它被执行events.length次。
我的 Controller :
...
window.callPrepareAlertValueCount = 0
$scope.prepareAlertValue = function(value) {
window.callPrepareAlertValueCount++;
if(safemineHelper.isFloat(value)) {
value = (~~(value * 100)) / 100;
}
return value;
}
...
显示 list 后-我看到callPrepareAlertValueCount增长了。控制台日志:
> callPrepareAlertValueCount
< 41890
> callPrepareAlertValueCount
< 46150
> callPrepareAlertValueCount
< 480315
请有人可以解释为什么始终执行prepareAlertValue。
我是否需要为每个格式化程序功能编写指令?
最佳答案
这是正确的,无论您绑定(bind)在html上什么,它都会在angular js运行的每个摘要循环中调用。
使用{{::prepareAlertValue(event.AlertValue)}}
绑定(bind)一次指令,该指令仅执行一次该功能。