2012-12-13 38 views
0

我想使用一個值,如post-header-id-23作爲el id值。我只是想用這樣的jQuery:backbone.js中的動態el值

$('#post-header-id-' + this.model.id).after(compiled_template); 

但它看起來像事件沒有得到連線。有沒有辦法解決這個問題,以便jQuery選擇器不會抑制正常的選擇器。另外,它看起來像這樣的:

el: $('#post-header-id' + this.model.id), 

,但我將如何設置這在渲染功能?還是我在做其他事情?

THX

回答

3

這裏的關鍵是,你必須決定是決定什麼「厄爾尼諾」是正確的時間;不幸的是,你不能只給骨幹一個選擇器,並期望它神奇地保持最新。因此,記住,如果「渲染」是設置你的el的正確時間(並且通常初始化或渲染是正確的位置),那麼你只需要使用Backbone的(有些新穎的)函數:

var SomeView = Backbone.View.extend({ 
    render: function() { 
     this.setElement($('#post-header-id' + this.model.id)); 
     return this; 
    } 
}) 
+0

嗯......總noob問題,但會報則不是一個因素。我基本上編譯一個模板,所以我想我需要將它分配到某個地方。 – timpone

+0

如果你沒有設置el(通過setElement或者提供'el:something'),Backbone會自動爲視圖el創建一個新的(class-less,id-less,empty)div元素。你可以絕對使用它來做'this。$ el.html(resultsOfTemplate)',而不指定el,但是在某些時候你必須將該視圖的el附加到頁面上的某個元素上(if你想看到它,你可能會做;-))。 – machineghost

0

隨着0.9.9版本

在聲明查看,期權,薩爾瓦多和標籤名現在可以,如果你想在運行時確定它們的值定義爲 功能。

像這樣的東西應該這樣做:

id: function() { 
    return '#post-header-id' + this.model.id 
}