2011-12-08 37 views
1

我有以下場景。Backbone.js:在另一個視圖中顯示一個視圖的結果

  • 錶行列表。
... 
<tr><td><a href="#" class="item" id="1">get items</a></td></tr> 
<tr><td><a href="#" class="item" id="2">get items</a></td></tr> 
<tr><td><a href="#" class="item" id="3">get items</a></td></tr> 
... 

整個表從「TableView中」主鏈對象創建並從「TableRowView」骨幹對象所創建的表的每一行。

  • 當單擊每行中的「獲取項目」鏈接時,我請求服務器獲取對象列表。這些對象存儲在它自己的模型和集合中。反過來,他們有自己的視圖對象「TableRowListView」。

到目前爲止,一切正常。我想要做的是獲得當前「TableRowListView」的「el」返回並將其附加到被點擊的表格行。所以,最終的結果會看起來像

... 
<tr><td> 
    <a href="#" class="item" id="1">get items</a> 
    <ul> 
     <li>table row list object</li> 
     <li>table row list object</li> 
    </ul> 
    </td></tr> 
<tr><td><a href="#" class="item" id="2">get items</a></td></tr> 
<tr><td><a href="#" class="item" id="3">get items</a></td></tr> 
... 

所以我想我有麻煩試圖「插入」視圖對象到另一個視圖。

+0

你剛剛在'持有視圖'裏面試過'$(this).append(viewRef.el)'嗎?該視圖只是一個編程構造。 'el'綁定到DOM,所以你可以直接做這個...... – PhD

+0

通過「$(this).append(viewRef.el)」,你假設我目前處於「持有」視圖。但是當「viewRef」被創建時,我需要將它傳遞給控制視圖。 – ericbae

+0

然後我想你需要提供更多的信息 - 即代碼顯示它是如何實現的,以幫助我們更好地實現。順便說一句,它應該不是真的很重要,你可以讓每個viewRef引用「持有」視圖或使用事件並讓持有視圖做出相應的反應!雖然我不能說任何其他的東西,因爲你沒有任何骨幹相關的代碼,看看究竟需要做什麼 – PhD

回答

2

如果你看一下在新Recipes with Backbone book上集合視圖的免費章節,你會看到這樣的代碼:

addOne: function(model) { 
    view = new Views.Appointment({model: model}); 
    view.render(); 
    $(this.el).append(view.el); 
    model.bind('remove', view.remove); 
} 

筆者是創建一個子視圖的項目,然後附加視圖的元素到包含視圖的元素。那是你的追求?

如果是這樣,那麼我會推薦該章節(您可以從網站下載PDF格式的表格),看看它是否能夠進一步澄清問題。這是一個簡短的閱讀(我認爲是六頁)。

相關問題