Javascript 流星发布返回空光标
我使用Backbone.js来路由纵断面图,这样我就可以查看属于/user的数据,这部分工作正常。我能够根据用户名生成一个_id,并将其传递到服务器发布函数,该函数会记录它。但是,当我在subscribe函数中将结果记录回客户端时,我的结果如下所示: 对象{停止:函数,准备:函数}Javascript 流星发布返回空光标,javascript,model-view-controller,backbone.js,meteor,Javascript,Model View Controller,Backbone.js,Meteor,我使用Backbone.js来路由纵断面图,这样我就可以查看属于/user的数据,这部分工作正常。我能够根据用户名生成一个_id,并将其传递到服务器发布函数,该函数会记录它。但是,当我在subscribe函数中将结果记录回客户端时,我的结果如下所示: 对象{停止:函数,准备:函数} //Client Side Template.userquery.userproject = function() { var query = Session.get('userquery'); va
//Client Side
Template.userquery.userproject = function() {
var query = Session.get('userquery');
var user = Meteor.users.findOne({username: query});
if (user) {
console.log(user._id); //(works)
campaigns = Meteor.subscribe('userquery', user._id, function() {
console.log('ready'); //(works)
});
console.log(campaigns); //(returns Object {stop: function, ready: function})
return campaigns;
}
}
//Server Side
Meteor.publish('userquery', function(userid) {
console.log('break');
console.log(userid); //(I get userid in Terminal)
var campaigns = Campaigns.find({owner: userid}, {fields: {owner: 1, name: 1}});
if (campaigns) {
console.log(campaigns);
return campaigns;
}
});
我在这个函数中遗漏了什么吗?我已关闭autopublish,因为它两次生成我的搜索。Meteor.subscribe,“返回一个提供stop()和ready()方法的句柄。”因此,您看到的行为是有意的。Publish不会返回光标,而是提供一个句柄,您可以使用该句柄停止或重新启动订阅。要使用这些数据,只需调用您的
活动。正常查找,只要在订阅完成后,您说“准备就绪”(按时间而不是按代码)