Marionette CollectionView带有一个独特的ItemView

Dav*_*ier 2 collectionview backbone.js marionette

有没有办法在Marionette CollectionView中创建一个独特的视图?我的意思是这样的:

的CollectionView

  • StartView(这是独特的视图)
  • 常规ItemView
  • 常规ItemView
  • 常规ItemView
  • 等等

通过唯一,我的意思是"Start ItemView"必须使用唯一的模板,而不是与常规ItemViews相关联的方法.

我试过的事情:

  • 只是将开始视图添加到CollectionView的el之前是不可取的,因为我的CollectionView的方法作用于其子视图.

  • 在Marionette文档中,建议在这种情况下覆盖buildItemView(我认为?).我不知道如何覆盖它.只是调用buildItemView不起作用,因为StartView没有关联的模型或任何选项.好像我不能把这些args留下来,或者只是返回undefined.

  • 我不能在我的CollectionView模板中包含StartView的标记,因为... Marionette CollectionViews不能有模板.

  • 从Marionette文档来看,它似乎不适合CompositeView的用例.但也许我错了.

我可能错过了一些相当明显的东西.在此先感谢您的帮助.

编辑:格式化

Joh*_*his 5

创建2个不同的视图,'StartView'和'NormalView':

StartView = Marionette.ItemView.extend({
    template:"#start-template'
});
NormalView = Marionette.ItemView.extend({
    template:"#normal-template"
});
Run Code Online (Sandbox Code Playgroud)

在你的集合视图中,覆盖getItemView并返回'StartView'和'NormalView'......如下所示:

MyCollectionView = Marionette.CollectionView.extend({
   getItemView:function(item){
       if(item.get("ImTheFirst")===true)
          return StartView;
        else
          return NormalView;
    }
});
Run Code Online (Sandbox Code Playgroud)

在集合中的第一个项目上,添加属性"ImTheFirst"(例如)并将其设置为true.