铁路由器

时间:2015-07-03 08:44:08

标签: javascript meteor meteorite meteor-blaze

我在用户集合中有1000多个文档。我应该每页显示10个用户。订阅onclick活动中的下一个10个用户。一切都很好。但是当我去另一条路线时,订阅数量仍然相同。

Router.js:

    Router.map(function() {
      this.route('user.india', {path: '/user/india', layoutTemplate: 'userLayout'});
      this.route('user.us', {path: '/user/us', layoutTemplate: 'userLayout'});
    });

模板

<template name="userLayout">
  {{> yield}}
  {{> _tabs}}
</template>
<template name="userIndia">
    {{#each user}}
           {{name}}
    {{/each}}
      <div id="loadMore">Load More</div>
    {{> _tabs}}
</template>
<template name="userUs">
    {{#each user}}
           {{name}}
    {{/each}}
      <div id="loadMore">Load More</div>
  {{> _tabs}}
</template>

客户

//Indian User
ITEMS_INCREMENT = 10;
Template.userIndia.created = function () {
  Session.setDefault('itemsLimit', ITEMS_INCREMENT);
  this.autorun(function () {
    this.subscription = Meteor.subscribe('user','IN', Session.get('itemsLimit'));
  }.bind(this));
};
Template.userIndia.helpers({
  Bids : function(){
    return User.find();
  }
});

//US users
ITEMS_INCREMENT = 10;
Template.userUs.created = function () {
  Session.setDefault('itemsLimit', ITEMS_INCREMENT);
  this.autorun(function () {
    this.subscription = Meteor.subscribe('user','IN', Session.get('itemsLimit'));
  }.bind(this));
};
Template.userUs.helpers({
  Bids : function(){
    return User.find();
  }
});

服务器

  Meteor.publish('user', function(country, limit) {
    return Users.find({'country':country}, { limit: limit });
  });

1 个答案:

答案 0 :(得分:1)

从评论继续,路由之间的限制计数保留,因为您使用Session变量来存储限制计数。

会话数据保留在路由之间,这意味着尽管您更改路由会话值将是相同的 在这里查看文档http://docs.meteor.com/#/full/session

此处有两种解决方案,您需要使用reactivevarsreactivedict

为两个不同的订阅使用两个不同的会话变量,例如

ITEMS_INCREMENT = 10;
Template.userIndia.created = function () {
  Session.setDefault('itemsLimitIndia', ITEMS_INCREMENT);
  this.autorun(function () {
    this.subscription = Meteor.subscribe('user','IN', Session.get('itemsLimitIndia'));
  }.bind(this));
};
Template.userIndia.helpers({
  Bids : function(){
    return User.find();
  }
});

//US users
ITEMS_INCREMENT = 10;
Template.userUs.created = function () {
  Session.setDefault('itemsLimitUS', ITEMS_INCREMENT);
  this.autorun(function () {
    this.subscription = Meteor.subscribe('user','IN', Session.get('itemsLimitUS'));
  }.bind(this));
};

注意我更改了会话变量名称