如何在我的HomeController中获取一个ApplicationController?
HomeController=Ember.Controller.Extend({ init:function { // Here I want to get My application controller. Is there any way to get?? } })
解决方法
How can I get an ApplicationController inside my HomeController?
要指定控制器之间的依赖关系(或需要),请使用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钩子.