我在流星 1.7 中工作,我的发布/订阅只返回空数组。文件结构:
-all/
-shared.js
-client/
-main.js
-imports/
-Elsewhere.js
-server/
-main.js
shared.js:
Chats = new Mongo.Collection('chats')
客户端/main.js:
Template.main.onCreated(()=>{
Meteor.subscribe('chats')
});
服务器/main.js
Meteor.publish('chats', function(){
console.log(Chats.find().fetch()) //Shows that I have documents in the collection
return Chats.find();
});
其他地方.js
Template.Elsewhere.helpers({
chats(){
console.log(Chats.find().fetch()) //[]
return Chats.find().fetch()
}
})
为什么我没有得到我正在发布的内容?
- - - - - - - - - - - - - - - - - - -新的东西 - - - - - - ----------------------
我现在不确定这是加载顺序问题、反应性问题、发布/订阅问题还是它们的混合问题。我有这个片段
search(collection, where, id, part, callback){
var result
if(id){
console.log(Meteor.users.find().fetch()) //[]
result = Collections[collection].findOne(id)
}else{
result = Collections[collection].find(where ? where : {}, {many:true}).fetch()
}
if(result){
if(callback){
callback(result)
return
}else{
if(part){
return result[part]
}else{
return result
}
}
}
}
我还注意到此日志的输出发生在我订阅之前。该文件位于 /imports/scripts/tools.js