我有一个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);
  }

最佳答案

为什么您的itemview不充当第二个视图的父亲,您可以在item视图的初始化函数中创建第二个视图。

编辑

这次我仍将创建一个perent视图,将其设为您2个视图的父级,您的集合将创建父级,而父级将在其中创建两个视图。

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

关于javascript - 使用Marionette CollectionView为每个项目创建多个 View ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15891247/

10-09 22:30