2013-12-16 86 views
0

我試圖創建一個簡單的界面,左邊的鏈接列表中,從AJAX調用中檢索,點擊時,打開一個{{outlet }}向右移動一些數據,並從該鏈接的另一個AJAX調用中檢索。因此,這些都是我的路線:EmberJS linkTo嵌套的資源重新呈現父視圖

App.Router.map(function() { 
    this.resource('about'); 
    this.resource('subreddit', { path: 'subreddit/:subreddit_name' }, function() { 
    this.resource('comments', { path: 'comments/:id' }) 
    }); 
}); 

所以我有鏈接的動態列表,基於:用以下結構subreddit_name:

subreddit/:subreddit_name/comments/:id 

要創建我有以下的代碼塊鏈接:

<script type="text/x-handlebars" id="subreddit"> 
    <div>  
     {{#each item in model}} 
      {{#linkTo 'comments' item.subreddit item.id classNames="list-group-item"}} 
       <img class="media-object" {{bindAttr src="item.thumbnail"}} class="img-rounded"> 
       {{item.author}}      
      {{/linkTo}} 
     {{/each}} 
    </div> 

    <div>{{outlet}}</div> 
</script> 

該鏈接已正確更正,但是,在將subreddit_name動態路由插入路由器後,單擊鏈接時,它會重新呈現整個模板,而不是重新呈現onl Y代表的意見模板:

<script type="text/x-handlebars" id="comments"> 
{{#each item in model}} 
    <div class="panel panel-info mypanel"> 
    <div class="panel-heading">{{item.author}}</div> 
    <div class="panel-body"> 
     <p>{{{item.body}}}</p> 
    </div> 
    </div> 
{{/each}} 
</script> 

我仍然在EmberJS漂亮的綠色,這就是爲什麼我想請教一些建議/ commment上出來糾正。

在此先感謝!

+1

試圖通過** **僅在模型作爲'link-to'幫助器中的參數,而不是父模型和id。像這樣:'subreddit'模板中的{{#linkTo'評論'item}}' – edpaez

+0

它的工作原理..差不多!問題是,當我點擊鏈接時,它會檢索正確的註釋,但URL是:「index.html#/ subreddit/undefined/comments/1t0gwe」,其中'undefined'應該是subreddit的名稱 – josetapadas

+0

問題是沒有人講述它將被使用的模型是「SubredditRoute」。它的未定義的ATM,這就是爲什麼當它試圖序列化(改變網址)它顯示「未定義」。我認爲你應該做的是有一條路徑來處理和顯示所有的subreddits,然後處理一個subreddit(顯示鏈接到評論),然後是評論。 **編輯**我有我的懷疑...嘗試使用你的第一個'鏈接到'方法,但看看這種方法:http://emberjs.com/api/classes/Ember.Route。 html#method_serialize – edpaez

回答