おおよそ次のようなテンプレートがいくつかあります。
<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}}