gpt4 book ai didi

angularjs - ng-repeat 通过多个属性进行跟踪

转载 作者:行者123 更新时间:2023-12-03 06:37:35 25 4
gpt4 key购买 nike

我对 Angular ng-repeat 指令有疑问。目前我正在开发一个项目,从 API 中我得到一个项目列表(有时可能是 1k 个项目),并且该列表应该每 5 秒刷新一次(它正在监视相关项目)。

当列表长度稍大时,网站在重新渲染 DOM 时可能会“变慢”。结果是 Angular 重新生成了整个 DOM(但是 95% 的项目是相同的!)

一种可能的方法是将“track by”表达式设置为 item.id。但这里又出现了另一个问题,例如当其他用户更改描述时,我也想重新生成项目。由于跟踪依据是 item.id 的表达式,item.description 中的更改不会更新 DOM 中的项目。

有办法跟踪多个属性吗?也许有一些功能?或者也许可以通过“手工”进行比较?

任何想法、代码示例我都会很感激:)

更新

当我将 track by 设置为 item.id Angular 时,我发现并没有重新构建项目的 html,只是更新已创建元素中的值,它似乎比删除和创建“更快”。以前我觉得有点不同。

修复

对于那些希望在 ng-repeat 中寻找超过 1k 个项目的更好性能的人,请使用 track by item.id 它将提高您的性能;)

最佳答案

您不需要创建一个函数来处理多个属性的跟踪。你可以这样做:

<div ng-repeat="item in lines track by item.id+item.description">

关于angularjs - ng-repeat 通过多个属性进行跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28232122/

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