我的Backbone应用程序将拥有Collection的多个对象,每个集合包含多个模型。我想要做的是将每个Collection对象包装成div元素,并根据集合对象属性值包含自定义标题。
目前,Collection正在使用模型的视图,并且不包含任何自己的模板。
将每个集合对象包装到模板中的最佳方法是什么?
更新
以下是我的CollectionView目前的样子:
window.OrderListView = Backbone.View.extend({
el: '#all-orders-container',
template: _.template(orderListTpl),
initialize: function() {
this.$el.append(this.template({order_id: this.collection.order_id}));
},
render: function(){
var _this = this;
this.collection.forEach(this.addItem, this);
},
addItem: function(orderItem){
var orderView = new OrderView({
model: orderItem
});
this.$el.append(orderView.render());
}
});
同一个CollectionView类将有多个对象。现在的问题是 - 如何将它们渲染成单独的元素,并将新的orderView元素附加到适当的元素中?
答案 0 :(得分:0)
实现像这样的集合视图
var CollectionView = Backbone.View.extend({
render:function(){
var _this = this;
this.collection.each(function(model){
_this.addItem(model)
})
},
addItem:function(model){
var itemView = new ItemView({
model:model
});
itemView.render().$el.appendTo(this.$el);
}
});