我在用户集合中有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 });
});
答案 0 :(得分:1)
从评论继续,路由之间的限制计数保留,因为您使用Session
变量来存储限制计数。
会话数据保留在路由之间,这意味着尽管您更改路由会话值将是相同的 在这里查看文档http://docs.meteor.com/#/full/session
此处有两种解决方案,您需要使用reactivevars
或reactivedict
或
为两个不同的订阅使用两个不同的会话变量,例如
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));
};
注意我更改了会话变量名称