1

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

1 回答 1

0

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

编辑

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

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

于 2013-04-09T00:33:38.823 回答