【问题标题】:Meteor Collection not updating流星收藏不更新
【发布时间】:2013-05-23 19:42:45
【问题描述】:

Meteor 很新,自从删除自动发布后,我在更新我的 mongoDB 流星集合时一直遇到错误。也许我现在错过了一些关于发布非常重要的东西,但只需在控制台中输入:

NVC.Users.insert({name:'bob'})
--> "MTi5ePEyHyKXZFWjL"
NVC.Users.find().fetch()
--> []


让我失望,因为在删除自动发布之前,我可以发誓这有效。有人可以解释一下我所缺少的,因为我也尝试过:

// Client
if Meteor.isClient
  Deps.autorun ->
    Meteor.subscribe 'rooms'


// Server
if Meteor.isServer
  Meteor.startup ->
    Meteor.publish 'rooms' , ->
      return Rooms.find()

【问题讨论】:

    标签: javascript mongodb collections meteor meteorite


    【解决方案1】:

    不要将您的订阅放在Deps.autorun:

    if Meteor.isClient
      Meteor.subscribe 'rooms'
    

    如果您想通过 Session 传递一个变量来更改订阅,请使用 Deps.autorun,但在上面的用例中您不需要它。

    Deps.autorun 会在每次响应式依赖项发生变化时运行。但是没有,所以它不会运行,也不会订阅房间

    【讨论】:

    • 所以如果发布处理程序中的某些属性发生了变化,我会使用 Deps,例如计算帖子的数量?
    • 并非如此,如果您想在Session 更改时运行一些 javascript,您可以使用它,例如通过更改您可能使用的消息集合订阅的房间来更改订阅。在流星文档上有一个关于如何做到这一点的示例:docs.meteor.com/#meteor_subscribe 其中房间设置为Session.get('current-room')
    猜你喜欢
    • 2015-05-22
    • 2012-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-13
    相关资源
    最近更新 更多