我有一个发布功能如下:
Meteor.publish('tasks', function (name) {
var project = Projects.findOne({name: name});
return Tasks.find({projectId: project._id});
});
现在假设在某些时候对项目进行了更改,结果是上面的 Projects.findOne
返回了一个不同的项目,因此 Tasks.find 将返回其他任务。
但是,对项目所做的更改不会重新发布任务
我使用过 reactivePublish,但结果发现包有问题(而且也没有任何单元测试)。那么,有没有一种简单的方法可以让这个发布功能在项目发生变化时重新发布?
最佳答案
概览
在撰写本文时,响应式(Reactive)连接是一个尚未解决的问题。有关完整概述,请参阅 Reactive Joins In Meteor .
建议
我强烈建议不要使用 observeChanges直接地。很难做到正确,并且很容易发生内存泄漏。不信看this video在 EventedMind 上。它会让你的眼睛流血。
有several package-based solutions到这个问题。 meteor guide推荐publish-composite .
如果您发现使用基于包的解决方案的想法 Not Acceptable ,请仔细查看 Reactive Joins In Meteor 中的在客户端加入部分。 .它很干净,但需要用户更多的等待。另请参阅我在 template joins 上的帖子如果您更喜欢在模板级别激活您的订阅。
关于javascript - meteor .publish : publish collection which depends on other collection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26398952/