gpt4 book ai didi

javascript - ng-repeat 运行两次(Angular)

转载 作者:行者123 更新时间:2023-11-28 19:29:20 24 4
gpt4 key购买 nike

考虑以下 ng-repeat:

<p ng-repeat="item in items">
<span ng-bind="getName(item)"></span>
</p>

现在奇怪的是,如果我有一个包含 10 个项目的数组,则 getName 会被调用 20 次

看看这个 jsfiddle

有人可以解释为什么会发生这种情况吗?就性能而言,这可能是一场杀戮(我可以想象)

最佳答案

这是 Angular 的标准行为。 Angular 对值运行脏检查,并且至少运行两次以确保值没有更改。

编辑:

为了避免这种行为,我建议在 Controller 中映射此名称,每个项目只会评估一次:

function MyCtrl($scope) {
...
$scope.items.forEach(function(item) {
item.name = getName(item);
});
...
});


<p ng-repeat="item in items">
<span>{{item.name}}</span>
</p>

关于javascript - ng-repeat 运行两次(Angular),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27178164/

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