Я создал представление, которое слушает коллекцию. Модели этой коллекции заменяются все сразу. Я хочу, чтобы представление отображалось как можно реже.
Вид:
BoxContent = Backbone.View.extend({
initialize: function(options) {
console.log("BoxContent initializing");
this.el = options.el;
this.collection = options.collection;
this.collection.on("add", this.update, this);
this.collection.on("reset", this.update, this);
},
update: function(){
this.render();
},
render: function() {
document.getElementById('boxContentHeader').innerHTML = localStorage.activeBox;
console.log("BoxContent rendering");
var temp = _.template(maincontemp,{boxFolder: this.collection});
this.$el.empty();
this.$el.append(temp);
this.$el.trigger("create");
},
reset: function()
{
this.render();
},
close: function(){
//console.log("off-logging clickListener");
//this.collection.off();
//$(this.el).off();
}
});
Чтобы обновить коллекцию, я создаю массив моделей, сбрасываю коллекцию и помещаю новый массив в коллекцию. Мне нужно прослушать сброс, чтобы отображалась пустая коллекция. Я не получаю данные с restful-сервера.
Существуют ли другие способы прослушивания изменений в коллекции?
РЕДАКТИРОВАТЬ:
Еще один вопрос: хотя я просто добавляю в коллекцию один массив моделей, вызывает ли backbone событие добавления для каждой из моделей внутри этого массива?