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

wma*_*but 2 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('applicationController').connectOutlet('main')
            editor: Ember.Route.extend
                route: '/editor'
                connectOutlets: (router, event) ->
                    router.get('mainController').connectOutlet('editor')
Run Code Online (Sandbox Code Playgroud)

那我怎么能EditorController抓住我的MainController

我试过@get('parentController'),@get('parent')以及@get('controller')没有成功

Mik*_*ski 6

您可以通过target控制器的属性访问路由器.

例如,在您的情况下,来自任何控制器:

@get('target.mainController')
Run Code Online (Sandbox Code Playgroud)

或者,如果您不使用Ember的头部修订版:

@getPath('target.mainController')
Run Code Online (Sandbox Code Playgroud)