2016-10-01 58 views
0

我在Backbone中有一個視圖,'el'是'下面的示例div'。在這個視圖的渲染函數中,我將創建動態<li>元素並將它們附加到ul元素。骨幹視圖不返回當前視圖/模型的onClick事件

var tabView = Backbone.View.extend({ 
     el : '#sample', 
     $ul : $("#sample").find("ul"), 
...(Other code) 
render: function() { 
    var htmContent = this.template(this.model.attributes); 
    this.$ul.append(htmContent); 
    return this.$el; 
} 
<div id="sample> 
<ul class="list"> 
<!-- <li class="series"> elements will be appended here'--> 
</ul> 
</div> 

現在我需要做的是,在一個<li>元素的點擊,我需要獲得該元素的相應的視圖來獲取模型和調用方法。所以我在這個tabView中註冊了一個哈希事件,並在單擊<li>時調用一個方法。但是,'this'下面總是返回最後創建的<li>元素視圖/模型。

events:{ 
     'click .series':'clickOnContent' 
     } 

clickOnContent: function(e){ 
     e.preventDefault(); 
    var val = this.model.attributes; 
} 

我怎樣才能獲得當前單擊了<li>元素查看/模型呢?

回答

1

您似乎在嘗試使用模型及其屬性來保存一組列表項。這是方法不正確。相反,您將需要爲由「集合」支持的列表創建子視圖,然後應將每個li元素添加到列表集合中。閱讀關於Backbone Collections的豐富教程之一。

+0

謝謝。爲列表項添加子視圖。 – user2894296