2

ルーターアーキテクチャを使用するアプリケーションがある場合、親ルートのコントローラーを取得するにはどうすればよいですか?

次のようなルートを想定します

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

targetコントローラのプロパティを介してルータにアクセスできます。

たとえば、あなたの場合、任意のコントローラーから:

@get('target.mainController')

または、Emberのヘッドリビジョンを使用しない場合:

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

私の理解によると、アプリケーションにはルーターが1つしかないことになっているので、なぜそうしないのですか。

@get('App.router.mainController')

私は正しいアプローチが何であるかわかりません!'target'は、アクションまたはイベントがディスパッチされるオブジェクトを格納しているように感じます。

于 2012-07-26T23:41:19.633 に答える