Магистраль: какие события я должен слушать

Я создал представление, которое слушает коллекцию. Модели этой коллекции заменяются все сразу. Я хочу, чтобы представление отображалось как можно реже.

Вид:

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 событие добавления для каждой из моделей внутри этого массива?


person marcel    schedule 19.02.2014    source источник


Ответы (1)


Взгляните на Каталог событий в документации. Вы можете прослушивать все события, у которых есть аргумент collection в аргументах.

  • add - (model, collection, options) — при добавлении модели в коллекцию.
  • remove - (model, collection, options) — при удалении модели из коллекции.
  • reset - (collection, options) — при замене всего содержимого коллекции.
  • sort - (collection, options) — когда коллекция была пересортирована.
  • destroy - (model, collection, options) — при уничтожении модели.
  • request - (model_or_collection, xhr, options) — когда модель или коллекция начали запрос к серверу.
  • sync - (model_or_collection, resp, options) — когда модель или коллекция успешно синхронизированы с сервером.
  • error - (model_or_collection, resp, options) — при неудачном запросе модели или коллекции к удаленному серверу.
  • all — это специальное событие срабатывает для любого инициированного события, передавая имя события в качестве первого аргумента.
person msvalkon    schedule 19.02.2014
comment
обычно ли добавляют массив моделей в коллекцию? или лучше добавлять модель за моделью? - person marcel; 19.02.2014
comment
Оба варианта хороши, это взято из официальной документации collection.reset: Добавление и удаление моделей по одной — это хорошо, но иногда вам нужно изменить так много моделей, что вы предпочитаете просто обновлять коллекцию целиком. . - person msvalkon; 19.02.2014
comment
Спасибо, так что я продолжаю со своим массивом. - person marcel; 19.02.2014