Hepimiz böyle bir şey yaptığını kötü olduğunu biliyorum: o zamanbackbone.js alt görüşlere olayları temsilciliği
<ul>
<li>Item</li>
<li>Item</li>
... 500 more list items
</ul>
ve ...
$("ul li").bind("click", function() { ... });
ben çok aracılığıyla arıyordum Omurga örneklerinin/kılavuzlarının ve aşağıdakilerin bir liste koleksiyonundan yola çıkılarak bir listenin bir liste oluşturulmasında standart bir yaklaşım olduğu görülmektedir.
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;
}
});
listesi öğesi görünümü: Ben yanılmıyorsam
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 modelleriyle koleksiyonu ile ListView başlatmasını, bana 500 tıklama olayları, her satır için bir tane verir. Bu kötü değil mi?
events : {
'click li' : 'log'
}
benim ListView bu koyabiliriz ve tek tam liste için tek tıklama olayını yaratacak, ama sonra ben olacak:
bildiğim Omurga isim alanlı olayları için olay heyette inşa etti Tıklanan liste öğesine karşılık gelen model verilerine erişme.
Omurga geliştiricileri bu tipik sorunu çözmek için hangi kalıpları kullanır?
Sen şöyle bir eleman ile örneğini ilişkilendirebileceğiniz
Teşekkürler, aradığım tartışma gibiydi. – Daniel