ember.js:每次访问控制器时执行操作

时间:2014-03-19 00:46:36

标签: ember.js

在我的Ember应用程序中,我使用全局变量来跟踪一个重要的状态(无论用户是否打开了一个项目)。它在绘制其他视图(如导航菜单)时用作条件。

现在我有控制器像这样设置全局变量:

App.ProjectsOverviewController = Ember.ObjectController.extend
  needs: ["application"]
  init: ->
    @set("controllers.application.isProjectSet", true)

但这只会在用户第一次访问该控制器时发生。我怎样才能每次都发生这种情况,而不仅仅是在最初的init

或者,如果有人可以在Ember提供的工具中建议更好的方法,我当然会很感激。

1 个答案:

答案 0 :(得分:1)

经过一些实验,我认为这在Route#activate上执行时会有效:

App.ProjectsOverviewRoute = Ember.Route.extend
  model: (params) ->
    @store.find("project", params.project_id)
  activate: ->
    @controllerFor("application").set("isProjectSet", true)