使用Marionette CollectionView为每个项目创建多个视图

时间:2013-04-09 00:19:48

标签: javascript backbone.js marionette

我有一个Marionette.CollectionView,对于某些项目(模型)需要创建2个视图才能在模型上运行,Marionette.CollectionView.buildItemView可以返回2个视图吗?

修改

我不想创建另一个WrapperItemView,我现在已经有一些解决方案,但我想让它更加标准化。

我希望我的代码看起来像这样,有一种简单的方法可以使它工作吗?

  buildItemView: function(item){
    // create 2 views based on item type 
    return [view1, view2];
  },
  appendHtml: function(collectionView, itemView, index){
    if (itemView.type === "X" ) 
        collectionView.$el.find(".A").append(itemView.el);
    if (itemView.type === "Y" ) 
        collectionView.$el.find(".B").append(itemView.el);
  }

1 个答案:

答案 0 :(得分:0)

为什么你的itemview不作为第二个视图的父亲,你可以在项目视图的初始化函数中创建第二个视图。

修改

这次我仍然会创建一个perent视图,我将它作为你的2个视图的父视图,你的集合将创建父视图,父视图将在其中创建两个视图。

这种方式对我来说更自然。