*******更新********
我使用下面的建议问了另一个问题......但是使用Iron-Router RouteController
call method in Iron-Router RouteController from Template.tmpl.helpers() not working
基本上我想做的是有一个按钮,可以在客户端上将更多记录加载到我的集合中。我在数据库中有一个未知数量的记录,但我只想将最新的500个左右发送到客户端。
我正在尝试模仿“继续搜索服务器”功能。我不是在寻找分页解决方案。
建议?
-------编辑添加代码------------
这是在我的/server/publications.js文件中:
Meteor.publish('clients', function( requestOptions ){
check(requestOptions, Object)
var options = _.extend(opts, requestOptions)
return Clients.find(baseQuery, options)
})
,这是在我的/lib/router.js文件中:
Router.route('/clients', {
name : 'clientList',
waitOn : function(){
return Meteor.subscribe('clients', {limit:500})
}
})
基本上我想显示最后500个新客户端,但允许最终用户“加载更多”或“加载所有”。我不确定如何对订阅做出反应......
答案 0 :(得分:0)
将此事件处理程序附加到承载按钮的模板:
Template.clients.events({
"click .load-more-button": function (event, template) {
template.skipped += 500;
template.subscriptions.push(Meteor.subscribe("client", {
limit: 500,
skip: template.skipped
}));
}
});
Template.clients.created = function () {
this.subscriptions = [];
this.skipped = 0;
};
//Stop the subscriptions when template is destroyed
Template.clients.destroyed: function () {
_.invoke(this.subscriptions, "stop");
};
只要您的客户端游标没有设置限制,它就应该有效,但这也意味着其他模板等加载的任何客户端都会出现在列表中。