Backbone.js Collection的包装模板

时间:2013-11-17 10:30:02

标签: javascript backbone.js

我的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元素附加到适当的元素中?

1 个答案:

答案 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);

    }

});