2016-10-01 75 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