Mam 2 różne szablony dla widoków mojego modelu. Za każdym razem, gdy modele są pobierane z bazy danych, pierwsze 3 modele (nr 1, 2, 3) pobrane z zaplecza będą miały widok utworzony przy użyciu pierwszego szablonu, kolejne 4 modele (# 4, 5, 6, 7) użyje drugiego szablonu, następne 3 modele (# 8, 9, 10) użyją pierwszego szablonu i tak dalej.Przełączanie między 2 różnymi szablonami w backbone.js
Problem: wprowadzenie tego naprzemiennego szablonu przy użyciu pliku backbone.js?
kod JS
// Views
PhotoListView = Backbone.View.extend({
el: '#photo_list',
render: function() {
$(this.el).html('');
_.each(this.model.models, function(photo) {
$(this.el).append(new PhotoListItemView({ model: photo }).render().el);
}, this);
return this;
}
});
PhotoListItemView = Backbone.View.extend({
tagNAme: 'div',
className: 'photo_box',
template: _.template($('#tpl_PhotoListView').html()),
initialize: function() {
this.model.bind('destroy', this.close, this);
},
render: function() {
$(this.el).html(this.template(this.model.toJSON()));
return this;
},
close: function() {
this.unbind();
this.remove();
}
});
epicki odpowiedź jest epicki ... Dziękuję –
całkowicie epicki. .. dzięki mu! – Nyxynyx
Pytanie: render będzie wywoływany dla każdego elementu, a widok będzie odświeżany. Czy możemy to zoptymalizować? –