Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 集合的Backbone.js包装模板_Javascript_Backbone.js - Fatal编程技术网

Javascript 集合的Backbone.js包装模板

Javascript 集合的Backbone.js包装模板,javascript,backbone.js,Javascript,Backbone.js,我的主干应用程序将有一个集合的多个对象,每个集合包含多个模型。我想做的是将每个集合对象包装到一个div元素中,并根据集合对象属性值定制一个标题 目前集合正在使用模型的视图,并且不包含任何自己的模板 将每个集合对象包装到模板中的最佳方法是什么 更新: 以下是我的CollectionView目前的样子: window.OrderListView = Backbone.View.extend({ el: '#all-orders-container', template: _.temp

我的主干应用程序将有一个集合的多个对象,每个集合包含多个模型。我想做的是将每个集合对象包装到一个div元素中,并根据集合对象属性值定制一个标题

目前集合正在使用模型的视图,并且不包含任何自己的模板

将每个集合对象包装到模板中的最佳方法是什么

更新:

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

实现这样的集合视图

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

    }

});

您可以为您的集合解释一些示例,其中包含多个模型的对象?主干集合旨在组织特定模型的对象,否则它不完全是主干集合,但我应该能够拥有同一集合的多个对象,对吗?谢谢,这是一个很好的提示。但是,这个CollectionView将有多个对象,我想知道如何将适当的根元素传递给这个特定CollectionView的$el。或者我应该在CollectionView初始化时更改$el的值,以便每次都创建一个新的值?@AlexanderSavin我不太确定上面的评论中有什么问题,如果是关于将$el分配给CollectionView,您可以在实例化CollectionView时这样做,比如
var collView=new CollectionView({el:'your selector'))
是的,我现在通过手动为每个CollectionView对象生成el解决了这个问题。不是很优雅,但是很管用!我不知道您是否已经知道,如果您不为视图指定el,它将创建自己的视图。您不需要在上创建,请查看主干源代码中的
\u ensureElement
函数,您可能会更好地了解跳过elThanks时会发生什么,这是您不知道的。