2

如果我有一个使用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')

那么我将如何EditorController获得我的MainController

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

4

2 回答 2

6

You can access the router through the target property of a controller.

e.g, in your case, from any controller:

@get('target.mainController')

Or, if you do not use head revision of Ember:

@getPath('target.mainController')
于 2012-07-26T20:21:31.007 回答
2

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

@get('App.router.mainController')

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

于 2012-07-26T23:41:19.633 回答