所以我有一个看起来像这样的视图。
//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?我是否必须以某种方式告诉它在集合更改时进行渲染?