当其他相关收藏发生变化时,如何重新订阅Meteor收藏

当其他相关收藏发生变化时,如何重新订阅Meteor收藏,meteor,Meteor,我希望在创建新活动时重新订阅ActivitySteps,否则用户无法访问该活动的新创建步骤。 我试过这个: Activities.find().observeChanges { added: -> console.log 'activity added' Meteor.subscribe 'activitySteps' } Deps.autorun -> Meteor.subscribe 'activitySteps', Activities.find()

我希望在创建新活动时重新订阅ActivitySteps,否则用户无法访问该活动的新创建步骤。 我试过这个:

Activities.find().observeChanges {
  added: -> 
    console.log 'activity added'
    Meteor.subscribe 'activitySteps'
}
Deps.autorun ->
  Meteor.subscribe 'activitySteps', Activities.find().count()
但是,当重新订阅发生时,创建的活动似乎没有向发布函数注册。如果我试图在里面设置一个setTimeout来延迟再预订几毫秒,当然我会收到一个Meteor错误,说我不能在模拟中设置计时器,但是它可以工作,新的步骤也可以使用

我也试过:

Activities.find().observeChanges {
  added: -> 
    console.log 'activity added'
    Meteor.subscribe 'activitySteps'
}
Deps.autorun ->
  Meteor.subscribe 'activitySteps', Activities.find().count()
即使在publish函数中不需要传入的计数值来确定哪些步骤应可供当前用户使用,该方法仍然有效。但是,当一项活动被删除时,这也会重新订阅,而且似乎这不是最好的方式

我也在Meteor文档中看到,可以从发布功能中观察到更改,但这似乎相当复杂


实现正确的重新订阅的正确方法是什么?

我认为通过向发布函数传递一个参数应该可以做到这一点。在我当前的项目中,这对我很有用

服务器 客户
你能举一个简单的例子说明你的意思并上传到github吗?这样人们就更容易回答你的问题。确保包括“重现问题的步骤”以及“预期结果”。