我们在流星中使用了跳过和限制的发布和订阅,并在客户端获取所有记录。
Meteor.publish('jobOrders', function(skip, limit) {
return (jobOrders.find({}, {
skip: skip,
limit: limit
}));
});
Template.templateName.onCreated(function() {
this.subscribe("jobOrders", 0, 2);
});
Template.templateName.helpers({
methodName: function() {
var totalNoOfRecords = jobOrders.find({}).count();
console.og("records are", totalNoOfRecords);
return totalNoOfRecords;
}
});
答案 0 :(得分:0)
原因可能是因为您在其他模板中有其他pub-subs从jobOrders
集合中获取数据。
请在您当前的模板中评论您的订阅,看看您是否仍然可以从此集合中获取记录。如果您在评论订阅后看到所有记录,那应该是因为其他订阅。
要解决此问题,您必须执行以下操作之一:
更改正在获取所有记录的其他订阅,以便使用
仅在该模板中提供数据Template.instance().subscribe()
而不是使用Meteor.subscribe()
,这将使所有模板中的客户端数据都可用。
在客户端过滤您的记录。
Template.templateName.helpers({
methodName: function() {
var totalNoOfRecords = jobOrders.find({skip:0, limit: 2}).count(); //Filter on the client side
console.og("records are", totalNoOfRecords);
return totalNoOfRecords;
}
});
注意:另一种可能是你没有删除不安全的软件包,它将自动发布所有集合中的所有记录。