1
我不知道这是否是错误,但是当我指定limit
时,如果客户端上的某些数据已经存在于客户端采集。流星 - 光标与极限设置不反应
例如,如果有限制:4,并且已有1条记录匹配,则比 返回一条记录,并且当接下来的3条记录是查询的时候,从服务器到达时,光标不响应(我期待 它将被再次评估,它将返回所有这4条记录)。
我发现它是因为当我取消注释所有记录的行时,我的应用程序工作(因为该光标将反映新数据可用)。您可以看到该查询是相同的,只有limit
除外。
messages = Messages.find(selector, {sort: {created: -1}, limit: MessagesAPI.LIMIT}).fetch();
//Messages.find(selector, {sort: {created: -1}}).fetch());
// if i uncomment the previous line, it works
更多代码
getMeteorState: function() {
console.log("zde");
var time = this.getParams().time;
var dir = this.getParams().dir;
//TODO: maybe check time and dir validity or let it crash ?
var ready = Session.get("messages-ready");
var params = {sort: MessagesAPI.sort.NEW, dir: dir == "prev" ? MessagesAPI.dir.PREV : MessagesAPI.dir.NEXT};
if (time) {
var d = new Date();
d.setTime(time);
params.date = d;
}
Meteor.subscribe("messages", params, function() {
console.log("ready");
Session.set("messages-ready", true);
});
var messages = [];
if (ready) {
var selector = {};
if (time && dir) {
selector.created = {};
var cond = (dir == "prev" ? "$lt" : "$gt");
var date = new Date();
date.setTime(time);
selector.created[cond] = date;
}
messages = Messages.find(selector, {sort: {created: -1}, limit: MessagesAPI.LIMIT}).fetch();
//console.log(selector);
// when i uncomment this, it will work
//console.log(Messages.find(selector, {sort: {created: -1}}).fetch());
}
return {
messages: messages
};
},
如果将.fetch()关闭,会发生什么情况? – 2014-12-04 01:15:46
@KeithNicholas:在消息中将只是一些LocalCollection实例 – Krab 2014-12-04 01:28:39
你怎么使用它? – 2014-12-04 01:38:38