有两条路线(comments
,trackbacks
)嵌套在post
内我尝试在content
后commentsController
访问trackbacksController
直接通过/posts/1/trackbacks
申请。不幸的是,似乎控制器没有完全初始化,内容也没有被加载。
这就是Router
的样子:
Router = Ember.Router.create
root: Ember.Route.extend
index: Ember.Route.extend
route: '/'
post: Ember.Route.extend
route: '/posts/:post_id'
index: Ember.Route.extend
route: '/'
redirectsTo: 'comments'
comments: Ember.Route.extend
route: '/comments'
connectOutlets: (router) ->
controller = router.get('postController')
controller.connectOutlet 'comments', controller.get('comments')
trackbacks: Ember.Route.extend
route: '/trackbacks'
connectOutlets: (router) ->
controller = router.get('postController')
controller.connectOutlet 'trackbacks', controller.get('trackbacks')
这是TrackbacksController
:
App.TrackbacksController = App.ArrayController.extend
init: ->
console.log App.router.get('attributesController.content') # : []
@_super()
最佳做法是手动初始化router.commentsController
以获取trackbacksController
的内容吗?我的方法有什么不对吗?
答案 0 :(得分:4)
您可以使用其controllers
属性从控制器访问所有控制器。
例如,从trackbacksController,您可以使用this.get('controllers.commentsController')
但我认为你可以在trackbacksController中放置一个观察者,它会观察controllers.commentsController.content
或controller.commentsController.@each
,所以当填充commentsController时,你会收到通知。