我有一些看起来大致像这样的模板:
<template name="items">
<div class="item-list">
{{#each items}}
{{> item}}
{{/each}}
<div>
{{> loadMore}}
</template>
<template name="item">
<div class="item" id="{{unique_string}}">
<!-- stuff here -->
</div>
</template>
<template name="loadMore">
<a href="#">Load more...</a>
</template>
使用相关的 javascript:
Template.items.items = function() {
return Items.find({}, {limit: Session.get("itemCount")});
}
Template.loadMore.events({
"click": function() {
Session.set("itemCount", Session.get("itemCount") + 10);
}
})
所有这些或多或少地给了我一些类似于无限滚动部分的东西。(实际的代码还有一些移动的部分,但这是重要的一点。)
但是,每当我单击 时loadMore
,它都会拉下更多数据并将我滚动回页面顶部,从而违背了无限滚动的目的。我可以输入一些 javascript 来向下滚动到它应该在的位置,但是当页面快速跳跃时,会留下令人讨厌的闪烁。
我已经尝试preserve
在整个列表以及每个项目上div
使用以防止它们被更新,但这似乎并没有停止滚动。我也尝试过在{{#isolate}}
任何东西周围放置积木,但没有任何运气。
我可以在这里做些什么来使页面在重新渲染时不滚动?以不同的方式编写模板?我错过的preserve
或某些方面?{{#isolate}}