2013-11-01 104 views
0

假設有這樣的路線:燼:路徑依賴父路徑的控制器上

@resource 'group', path: '/group/:group_id', -> 
    @route 'tweets' 

現在我有這些路徑和控制器:

  1. 組 - 在這裏,我的模型通過其ID加載
  2. group.index - 這裏我使用那個模型
  3. group.tweets - 這裏我需要加載一些額外的集合,這取決於group.id

樸素的方式來做到這一點(沒有工作)在GroupTweetsRou​​te:

model: -> 
    @store.find 'tweet', 
     group_id: @get('controllers.group.id') 
     tolerance: @get('controllers.group.membership.tolerance') 

我試圖controllerFor爲好。 所以目前我在那裏沒有團隊。但是我稍後會看到它,或者如果我從group.index頁面到達那裏。

我的猜測是,有一些異步的基於承諾的東西,我可以在beforeModel回調中等待,直到組被加載。但究竟是什麼?

回答

2

modelFor可以在模型解析階段使用。在控制器建立和設置之前,所有的模型都被解析(這就是爲什麼你的controllerFor不能在你的深層模型鉤子中工作)。

var group = this.modelFor('group'), 
    id = group.get('id'), 
    tolerance = group.get('membership.tolerance'); 
+0

Ahaha ...好,只是在一分鐘內:) –

0

好吧,這裏是我的情況下工作的解決方案:

model: -> 
    @store.find 'tweet', 
     group_id: @modelFor('group').get('id') 
     tolerance: @modelFor('group').get('membership.tolerance')