我正在尝试从服务器获取文档并将其显示在客户端上,但订阅始终返回没有文档的集合。
// server/publications.js
Meteor.publish('myPages', function() {
return Pages.findOne({userId: this.userId});
});
// collection/pages.js
MyPages = new Meteor.Collection('myPages');
// client/main.js
Meteor.subscribe('myPages');
// client/view.js
Template.myView.helpers({
myPages: function(e, t) {
console.debug(MyPages.find({}));
return MyPages.find({});
}
});
答案 0 :(得分:1)
我认为您不能使用findOne来发布集合:它不会返回游标而是返回实际对象。
这不起作用吗?
Meteor.publish('myPages', function() {
return Pages.find({userId: this.userId});
});
或者,如有必要:
Meteor.publish('myPages', function() {
return Pages.find({userId: this.userId}, {limit: 1});
});
答案 1 :(得分:1)
您无法通过订阅在集合之间移动文档。如果您订阅了Pages
集合中的文档,定义为new Meteor.Collection("pages")
,那么无论您的pubsub频道如何,在客户端上的文档都将在定义为{{1 }}。因此,请删除new Meteor.Collection("pages")
的所有痕迹,并在客户端上使用MyPages
。你会在那里找到那份文件。