在我的Ember应用程序中,我使用全局变量来跟踪一个重要的状态(无论用户是否打开了一个项目)。它在绘制其他视图(如导航菜单)时用作条件。
现在我有控制器像这样设置全局变量:
App.ProjectsOverviewController = Ember.ObjectController.extend
needs: ["application"]
init: ->
@set("controllers.application.isProjectSet", true)
但这只会在用户第一次访问该控制器时发生。我怎样才能每次都发生这种情况,而不仅仅是在最初的init
?
或者,如果有人可以在Ember提供的工具中建议更好的方法,我当然会很感激。
答案 0 :(得分:1)
经过一些实验,我认为这在Route#activate上执行时会有效:
App.ProjectsOverviewRoute = Ember.Route.extend
model: (params) ->
@store.find("project", params.project_id)
activate: ->
@controllerFor("application").set("isProjectSet", true)