2016-10-01 9 views
0

私はバックボーンでビューを持っています。ここで、 '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>要素をクリックするだけで、私はモデルと呼び出し方法を取得するには、その要素の対応するビューを取得する必要があります。だから私は<li>がクリックされたときに、このtabViewにハッシュイベントを登録してメソッドを呼び出しました。ただし、 'this'の下には、最後に作成された<li>要素ビュー/モデルのみが常に返されます。

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

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

は、どのように私は現在、代わりに<li>要素ビュー/モデルをクリックしますことができますか?

答えて

1

モデルとその属性を使用して一連のリスト項目を保持しようとしているようです。これは不正確なアプローチです。代わりに、 "コレクション"によって裏付けされたリストのサブビューを作成し、各li要素をリストコレクションに追加する必要があります。バックボーンコレクションに関する豊富なチュートリアルの1つをお読みください。

+0

ありがとうございました。リストアイテムのサブビューを追加しました。 – user2894296

関連する問題