我有一个数组说dataArray
,它有100个项目。我使用ngFor最初显示100个复选框。有一个按钮可以加载下100个项目。点击此按钮,我会向dataArray
追加100个项目,此dataArray
将包含200个项目。我的问题是,Angular是否再次运行ngFor循环以构建第二组项目(包括前100项)或者它是否足够智能仅循环第二组项目(仅100项)并将它们附加到现有DOM?< / p>
答案 0 :(得分:1)
当您附加项目时,必须重新运行整个for循环。
避免这种情况的方法是提供trackBy
功能。 trackBy
函数告诉angular只有在指定的属性(例如id)发生更改时才更改项目。这允许angular只更改指定属性已更改的DOM节点。
欲了解更多信息: