ng-repeat呼叫控制器功能太多次

格列布

我有下一个代码(事件是数组):

<tr ng-repeat="event in events">
    <td>
        <span time-ago="{{event.TimestampSec}}"></span>
    </td>
    <td>
        {{prepareAlertValue(event.AlertValue)}}
    </td>
</tr>

时间间隔-我的自定义指令。它被执行events.length次。

我的控制器:

...
window.callPrepareAlertValueCount = 0

$scope.prepareAlertValue = function(value) {
    window.callPrepareAlertValueCount++;
    if(safemineHelper.isFloat(value)) {
        value = (~~(value * 100)) / 100;
    }
    return value;
}
...

显示清单后-我看到callPrepareAlertValueCount增长了。控制台日志:

 > callPrepareAlertValueCount
 < 41890
 > callPrepareAlertValueCount
 < 46150
 > callPrepareAlertValueCount
 < 480315

请有人可以解释为什么始终执行prepareAlertValue。我是否需要为每个格式化程序功能编写指令?

Pankaj Parkar

这是正确的,无论您绑定在html上什么,它都会在angular js运行的每个摘要循环中调用。

使用{{::prepareAlertValue(event.AlertValue)}}bind一次指令将只执行一次该功能。

注意绑定一次仅适用于Angular 1.3+以上版本

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章