gpt4 book ai didi

javascript - ng-repeat 调用 Controller 函数太多次

转载 作者:行者123 更新时间:2023-11-29 14:49:05 25 4
gpt4 key购买 nike

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

<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;
}
...

列表显示后 - 我看到 callPrepareAlertValueCount 增长。控制台日志:

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

请有人解释为什么 prepareAlertValue 一直在执行。我是否需要为每个格式化程序函数编写指令?

最佳答案

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

使用 {{::prepareAlertValue(event.AlertValue)}} 绑定(bind)一次指令,该指令将只执行一次该函数。

Note Bind Once only work for above Angular 1.3+

关于javascript - ng-repeat 调用 Controller 函数太多次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28772134/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com