铁路由器:对数据变化做出反应

时间:2014-06-01 01:27:22

标签: meteor iron-router

我想知道在更新集合时铁路由器是否有可能改变路线?

目前我的模板中有:

Template.presenter.rendered = ->
  params = Router.current().params

  presentation = Slideshows.find(params._id)

  observer = presentation.observeChanges
    changed: (id, fields) ->
      Router.go('presenter',
        _id: id
        currentSlide: fields.currentSlide
      )

但我现在遇到的问题是,由于我将观察者放置在模板的渲染回调中,我偶尔会遇到这样的错误:当路由改变时,它会发生两次而不是一次。那么有没有更好的方法让我对Slideshows集合中的数据更改作出反应,以便我可以更改路线?

1 个答案:

答案 0 :(得分:0)

我找到的解决方案是在执行mongo中要更新的字段的命令之前先移动观察者。我还使用@David Weldon建议在调用observer.stop()之前将Router.go()置于右边。现在一切都适合我。