Javascript Ember.js使用路由器架构获取父路由的控制器

Javascript Ember.js使用路由器架构获取父路由的控制器,javascript,coffeescript,ember.js,ember-old-router,Javascript,Coffeescript,Ember.js,Ember Old Router,如果有使用的应用程序,如何获取父路由的控制器 假设一条像这样的路线 Router: Ember.Router.extend enableLogging: true root: Ember.Route.extend main: Ember.Route.extend route: '/' connectOutlets: (router, event) -> router.get(

如果有使用的应用程序,如何获取父路由的控制器

假设一条像这样的路线

Router: Ember.Router.extend 
    enableLogging: true
    root: Ember.Route.extend
        main: Ember.Route.extend
            route: '/'
            connectOutlets: (router, event) ->
                 router.get('applicationController').connectOutlet('main')
            editor: Ember.Route.extend
                route: '/editor'
                connectOutlets: (router, event) ->
                    router.get('mainController').connectOutlet('editor')
那么我的
EditorController
如何获得我的
main控制器


我尝试了
@get('parentController')
@get('parent')
,和
@get('controller')
,但没有成功

您可以通过控制器的
目标
属性访问路由器

e、 g,在您的情况下,从任何控制器:

@get('target.mainController')
或者,如果不使用灰烬的头部修订:

@getPath('target.mainController')

根据我的理解,一个应用程序应该只有一个路由器,那么我们为什么不这样做呢:

@get('App.router.mainController')

我不知道什么是正确的方法!我觉得“目标”存储的是将动作或事件发送到的对象。

谢谢!看起来它实际上是
@getPath('taget.mainController')
,因为
@get('target.mainController')
返回未定义的。我会看看我做了什么不可靠的事,你能不能也试着确认一下?在我接受之前,我想确保这是100%正确的。当然,我很抱歉让你感到困惑。将路径表达式与
get
一起使用是最近在最新版本中出现的。除非您正在跟踪头部,否则您确实应该使用
getPath
。更新的答案。谢谢,我可以确认这也有效@Mike Aski先得到了答案,所以他保留了答案,但我会投赞成票!:)