2

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?代わりに. コードのどの部分がリストの再レンダリングを防ぐのに役立つかを特定するのは困難です。誰かがそれをどのように行ったかを詳しく説明してもらえますか?waitOnonBeforeAction

4

2 に答える 2