如果我有一个使用路由器架构的应用程序,我如何获得父路由的控制器?
假设一条类似的路线
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')
,但没有成功
您可以通过控制器的target
属性访问路由器。
例如,在您的情况下,来自任何控制器:
@get('target.mainController')
或者,如果你不使用Ember:的头部修订版
@getPath('target.mainController')
根据我的理解,一个应用程序应该只有一个路由器,所以我们为什么不这样做呢:
@get('App.router.mainController')
我不知道什么是正确的方法!我觉得"target"是在存储要调度操作或事件的对象。