2013-02-26 234 views
1

我正在做一個閃存卡應用程序,卡集顯示在左側邊欄中。點擊一個集顯示在主面板:Ember路線嵌套結構

  1. 按鈕欄
  2. 的卡的表。

點擊按鈕欄中的Study按鈕(鏈接),我想要一個學習面板來替換卡片表。

我試過這樣做的各種方法,如築巢學習套下或設置,但都不起作用。目前嵌套在集下,問題是:

  1. 無法獲得學習鏈接來填充集ID。也許B/C按鈕欄在部分不是插座?
  2. 你甚至可以點擊這個鏈接,不用輸入id(我嘗試了一個硬編碼的測試),但是顯示的不是學習頁面。

下面的相關代碼。在github上的完整代碼,可在heroku上查看。

欣賞如何最好地設置它的幫助。

路由

App.Router.map -> 
    @resource 'sets', -> 
    @resource 'set', { path: ':set_id' }, -> 
     @route 'study', { path: 'study' }, -> 


App.SetsRoute = Ember.Route.extend 
    model: -> App.Set.find() 

App.SetRoute = Ember.Route.extend 
    setupController: (controller, model) -> 
    controller.set 'content', model 

App.SetStudyRoute = Ember.Route.extend 
    model: -> App.Set.find(params?.set_id) 
    setupController: (controller, model) -> 
    controller.set 'content', model 

sets.hbs

<div id="sets" class="span2"> 
    <div class="well well-small sidebar-nav-fixed"> 
     {{partial "sets/set_list"}} 
    </div> 
</div> 

<div class="span9"> 
    {{outlet}} 
</div> 

set.hbs

套/ _set_action

{{#linkTo set.study set class="btn btn-primary"}}Study!{{/linkTo}} 
<button class="btn btn-primary" {{action addCard}}>Add Card</button> 
<button class="btn btn-danger" {{action delete}}>Delete Set</button> 

回答

0

原來研究聯繫在set_actions必須引用控制器(它指的是一組對象)。所以:

{{#linkTo sets.study controller class="btn btn-primary"}}Study!{{/linkTo}}. 

之後,只要路線等指定正確,似乎工作。將更新git上的完整解決方案。