Backbone.js: Как заставить представление автоматически обновляться при изменении коллекции моделей

Итак, у меня есть представление, которое выглядит так .

    //base class
    var SelectListView = Backbone.View.extend({
        initialize: function() {
            _.bindAll(this, 'addOne', 'addAll');
            this.collection.bind('reset', this.addAll);
        },
        addAll: function() {
            this.collection.each(this.addOne);
        },
        events: {
            "change": "changedSelected"
        },
        changedSelected: function() {
            this.selected = $(this.el);
            this.setSelectedId($(this.el).val());
        }

    });

    //my extended view
    var PricingSelectListView = SelectListView.extend({
        addOne: function(item) {
            $(this.el).append(new PricingView({ model: item }).render().el);
        }         
    });

Я создал экземпляр такого представления ...

var products = new ProductPricings();
var pricingsView = new PricingSelectListView({
     el: $("#sel-product"),
     collection: products
});

Где-то еще (другой пользовательский метод представления) я обновил коллекцию представления цен

pricingsView.collection = new ProductPricings(filtered);

Это ничего не делает.

pricingsView.render();

Итак, теперь коллекция имеет меньше элементов, но новое представление никогда не отображается и не обновляется в DOM.

Как мне сделать 1.) Обновить визуализацию в DOM? 2.) Сделать так, чтобы DOM автоматически обновлялся? Должен ли я каким-то образом указывать, чтобы он отображал когда-либо коллекцию?

6
задан ctrlShiftBryan 5 January 2012 в 14:06
поделиться