हम सभी जानते हैं कुछ इस तरह कर रही है बुरा है:Backbone.js में उप विचारों को घटनाओं सौंपना
<ul>
<li>Item</li>
<li>Item</li>
... 500 more list items
</ul>
और फिर ...
$("ul li").bind("click", function() { ... });
मैं एक बहुत माध्यम से देख रहा है बैकबोन उदाहरण/गाइड का और निम्नलिखित मॉडलों के संग्रह के आधार पर वस्तुओं के साथ एक सूची प्रस्तुत करने के लिए एक मानक दृष्टिकोण प्रतीत होता है।
var ListView = Backbone.View.extend() {
tagName: 'ul',
render: function() {
this.collection.each(function(item) {
var view = new ListItemView({model: item});
$(this.el).append(view.render().el);
});
return this;
}
});
एक सूची आइटम दृश्य:
var ListItemView = Backbone.View.extend() {
tagName: 'li',
events: {
'click' : 'log'
}
log : function() {
console.log(this.model.get("title"));
}
render: function() {
$(this.el).html(this.template(this.model.toJSON()));
return this;
}
});
अगर मैं गलत नहीं हूँ, 500 मॉडल के साथ एक संग्रह के साथ ListView instantiating, मुझे 500 क्लिक घटनाओं, हर पंक्ति में एक देता है। यह बुरा है?
मैं जानता हूँ कि रीढ़ namespaced घटनाओं के लिए घटना प्रतिनिधिमंडल में बनाया गया है:
events : {
'click li' : 'log'
}
मैं मैं अपने ListView में इस डाल सकता है लगता है, और यह केवल पूरी सूची के लिए एक क्लिक घटना बन जाएगा, लेकिन फिर मैं wouldn क्लिक किए गए सूची आइटम से संबंधित मॉडल डेटा तक पहुंच प्राप्त करने में सक्षम नहीं होगा।
रीडबोन डेवलपर्स इस विशिष्ट समस्या को हल करने के लिए किस पैटर्न का उपयोग करते हैं?
धन्यवाद, यह उस तरह की चर्चा थी जिसे मैं ढूंढ रहा था। – Daniel