9

如何在 HomeController 中获取 ApplicationController?

 HomeController=Ember.Controller.Extend({
   init:function {
        // Here I want to get My application controller. Is there any way to get??
   }

 })
4

2 回答 2

17

如何在 HomeController 中获取 ApplicationController?

要指定控制器之间的依赖关系(或需求),请使用以下needs属性:

HomeController=Ember.Controller.Extend({
  needs: ['application']
})

现在 Ember 将使应用程序控制器可以从您的 HomeController 内部以controllers.application. 您可以像使用其他任何东西一样使用它HomeController,甚至可以从您的模板中访问它:

<!-- inside `home` template -->
{{controllers.application}}

有关控制器需求的更多详细信息,请参阅http://darthdeus.github.com/blog/2013/01/27/controllers-needs-explained/ 。

顺便说一句:ember 控制器很少使用自定义的 init fx。考虑移动任何初始化逻辑来setupController挂钩路由。

于 2013-02-19T06:39:49.693 回答
-1
App.HomeController = Ember.Controller.extend({
  init: function () {
    var applicationController = this.controllerFor('application');
  }
});
于 2013-02-19T04:46:50.020 回答