如何重新加载当前 iron:router 路线?

How do I reload the current iron:router route?

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

铁路由器有办法:

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

不过我不推荐它。有没有办法重写它而不需要重新加载?

另一种解决方案(可能更好,取决于用例)是在您的主模板渲染回调中使用 Auto运行 函数。如果您使用 Template.getData() 定义依赖项,则只要数据发生变化,它就应该 运行 里面的代码。

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

login_dep = new Tracker.Dependency

Router.rerun = ->
  login_dep.changed()

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