尝试制作一个无限滚动页面,当用户滚动时,元素会被展示出来。
因此,每当我检测到滚动条到达页面底部时,我会调用:
好的。这可以正常工作。但是每次调用
实际上,我注意到在
因此,每当我检测到滚动条到达页面底部时,我会调用:
this.recordLimit += 10;
this.subscribe('movements', {limit: this.recordLimit});
并且这会触发(自动运行)
this.autorun(h => {
if (this.ready()) {
this.items = Items.find(<potential limit filter here too>);
}
好的。这可以正常工作。但是每次调用
this.items = Items.find();
后,用户的浏览器都会滚动回顶部。可能的原因是因为 DOM 元素被删除,滚动位置被重置,然后再次添加元素而没有恢复以前的滚动位置。
我做错了什么?
“显然”运行良好的示例:
- https://github.com/barbatus/ng-infinite-scroll/blob/master/scroll-controller.js
- https://github.com/abecks/meteor-infinite-scroll
- http://meteorpedia.com/read/Infinite_Scrolling
实际上,我注意到在
Items.find()
之后放置一个 h.stop()
来停止订阅,这样就可以正常工作了...我猜以前的 mango 游标使用了最后一次订阅限制进行了更新。然而,我仍然无法理解为什么在初始情况下会重绘所有内容...