如何重新加载当前的铁路由器路由?

时间:2015-02-05 07:08:11

标签: meteor iron-router

如果我目前在/fooRouter.go '/foo'什么都不做。我希望/foo的动作挂钩和渲染重做。我知道我可以创建一个依赖项,在一个动作钩子中提及它,并在我需要重新加载时使它无效,我只是希望有一个Router.* api我可以使用,因为那会更干净。

2 个答案:

答案 0 :(得分:3)

这会添加一个有效的函数Router.rerun()

login_dep = new Tracker.Dependency

Router.rerun = ->
  login_dep.changed()

Router.configure
  onBeforeAction: ->
    login_dep.depend()
    ...

答案 1 :(得分:0)

铁路由器有一种方法:

Router.current().render(Template.yourMainTemplateName).data();

我不会推荐它。有没有办法重写它,所以它不需要重新加载?

另一个解决方案(可能更好,取决于用例)是在主模板渲染回调中使用自动运行功能。如果使用Template.getData()定义依赖项,则应在数据更改时运行代码。