Telescopeload more
のような機能を実装する方法を理解しようとしています。これは私がもともと持っているものです:
// Iron Router
Router.route('/posts', {
name: 'posts.index',
waitOn: function () {
return Meteor.subscribe('posts', Session.get('postsLimit');
},
data: function () {
return { posts: Posts.find({}, { sort: { createdAt: -1 } }) };
},
action: function () {
this.render();
}
});
// client/views/posts_list.html
<ul>
{{#each posts}}
<li>{{ title }}</li>
{{/each}}
</ul>
<a href"#" class="load-more">Load more</a>
// client/views/posts_list.js
var POSTS_INCREMENT = 3;
Session.setDefault('postsLimit', POSTS_INCREMENT);
Template.PostsIndex.events({
'click .load-more': function (e, tmpl) {
Session.set('postsLimit', Session.get('postsLimit') + POSTS_INCREMENT);
return false;
}
}
});
が変更されたときに Meteor がリストを再レンダリングするのは理にかなっていpostsLimit
ます。Telescope がリストを再レンダリングせずに新しい投稿のみをレンダリングする方法に興味があります。コードからわかることは、制限を に格納する代わりにSession
、作成者はルートを使用し、 を使用するtop/:limit?
代わりに. コードのどの部分がリストの再レンダリングを防ぐのに役立つかを特定するのは困難です。誰かがそれをどのように行ったかを詳しく説明してもらえますか?waitOn
onBeforeAction