表无限滚动的渲染问题 - 角度

时间:2018-02-23 13:36:33

标签: angular angular-material2

我正在构建一个具有无限滚动选项的表。初始加载正常,但是当下一批数据添加到表中时,我面临一些渲染问题(至少这是我看到的) 我可以通过明确的火detectchanges()解决它,但我很难理解为什么需要。

Stackblitz url

line:70 table-http-example.ts detectchanges()我已将{{1}}停用,以便您可以查看此问题。

有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

您遇到的问题是Angular无法跟踪数组中的项目,也不知道哪些项目已被删除或添加。

你得到渲染问题的原因是因为我的第一点因为角度需要重新渲染整个数组。

使用detectChanges(),告诉Angular检测本地更改并更新视图,请参考:What's the difference between markForCheck() and detectChanges()

要解决此问题,您可以使用trackBy()帮助Angular跟踪您的更改并停止整个重新呈现问题,参考:https://angular.io/api/common/NgForOf