问题
If I'm currently at /foo
, Router.go '/foo'
does nothing. I would like /foo
's action hooks and rendering to be redone. I know I could make a dependency, mention it in an action hook, and invalidate it when I need to reload, I'm just hoping there's a Router.*
api I can use, because that would be cleaner.
回答1:
This adds a function Router.rerun()
that works:
login_dep = new Tracker.Dependency
Router.rerun = ->
login_dep.changed()
Router.configure
onBeforeAction: ->
login_dep.depend()
...
回答2:
There is a way with iron router:
Router.current().render(Template.yourMainTemplateName).data();
I wouldn't recommend it though. Isn't there a way to rewrite it so it doesn't need to reload?
Another solution (perhaps better, depends on the use case) would be to have an Autorun function in your main template rendered callback. If you define your dependencies with Template.getData() it should run the code inside whenever the data changes.
来源:https://stackoverflow.com/questions/28338091/how-do-i-reload-the-current-ironrouter-route