我如何获得ApplicationController?

时间:2013-02-19 03:14:51

标签: ember.js

如何在HomeController中获取ApplicationController?

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

 })

2 个答案:

答案 0 :(得分: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/

BTW:ember控制器很少使用自定义init fx。考虑将任何初始化逻辑移到路由上的setupController挂钩。

答案 1 :(得分:-1)

App.HomeController = Ember.Controller.extend({
  init: function () {
    var applicationController = this.controllerFor('application');
  }
});