, así que tengo una vista que se ve así.Backbone.js: cómo forzar a la vista para que se actualice automáticamente al cambiar una colección de modelos
//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);
}
});
He instancia la vista como esta ...
var products = new ProductPricings();
var pricingsView = new PricingSelectListView({
el: $("#sel-product"),
collection: products
});
En otro lugar (otro método vistas personalizadas) He actualizado la colección de la vista de la fijación de precios
pricingsView.collection = new ProductPricings(filtered);
Esto no visto hacer cualquier cosa.
pricingsView.render();
Por lo tanto, ahora la colección tiene menos elementos, pero la nueva vista nunca se representa ni actualiza en el DOM.
¿Cómo lo hago? 1.) ¿actualizo la representación en el DOM? 2.) Hacer que actualice automáticamente el DOM? ¿Tengo que decir de alguna manera que se muestre cuando cambie la colección?
Gracias. ¡La bombilla está encendida! – ctrlShiftBryan