服务器上的 Meteor.publish 不会在客户端上显示新文档
Meteor.publish on server doesn't show new documents on client
问题是服务器上的下一个代码:
Meteor.publish(null , function() {
let events = [];
Groups.find({participants: this.userId}).forEach(function(item) {
events.push(item.latestEvent);
});
return Events.find({_id: {$in: events}});
});
不提供在客户端> Events.find().fetch()
上查看新文档的可能性无需重新加载页面。
这两个集合都位于lib
文件夹中:
Groups = new Mongo.Collection('groups');
Events = new Mongo.Collection('events');
我很确定问题出在反应式数据源中,但仍然无法解决它。
谢谢你的帮助!
是的,你是对的:只有事件集合是反应式的。有一个简单的方法可以通过使用发布复合包来解决它:
Meteor.publishComposite(null, {
find(){
return Groups.find({participants: this.userId});
},
children: [{
find(group){
return Events.find({_id: {$in: group.latestEvent}});
}
}]
});
但此解决方案有一个缺点:组文档也会发布。因此,您可能应该从中排除某些字段。
相关文章:
- 如何筛选要写入新文档的HTML,删除JavaScript中的某些类和/或ID
- 服务器上的 Meteor.publish 不会在客户端上显示新文档
- 使用JavaScript,我可以上传一个word文件并使用.replaces然后另存为新文档吗
- 在 javascript 中创建 xml 文档显示错误
- Indesign:将单元格样式复制到新文档
- 猫鼬创建一个包含分类子文档的新文档
- 不显示带有搜索的重复控件中的新文档
- 如何将网页文档显示到XUL元素中
- 仅在 Meteorjs 中添加新文档时更新订阅
- MongoDB:将字段移动到新文档并更新字段和数组
- 在 Couchdb ( 虹膜沙发 ) POST 请求中添加新文档失败,状态为 500
- Mongodb upsert 无法添加新文档
- 使用集合钩子将新文档的 id 添加到现有文档中的数组中
- 如果字段不在新文档中,则更新插入会删除该字段
- 如何知道Mongoose'的追加销售创建了一个新文档
- 让流星重新渲染“;新文档”;
- 如何将样式表粘贴到Rally应用程序中的新文档窗口中
- 流星DDP:当一个新文档被添加到集合中时,如何获得通知
- 从查询组合集合插入一个新文档
- document.open()是创建一个完整的新文档还是只是删除已经存在的文档?