如何使用MarionetteJS删除CollectionView的额外包装器?

时间:2013-04-21 18:33:58

标签: backbone.js marionette backbone-views

我遇到类似于此处讨论的LayoutView问题,即创建了额外的包装器:Extra wrappers in Backbone and Marionette

现在,我正在尝试使用CollectionView,并且看到一些意外的div出现。

我的CollectionView看起来像:

MA.Views.Composites.Movies = Backbone.Marionette.CollectionView.extend({

  template: 'composites/movies',

});

MA.addInitializer(function(){
  MA.collections.movies = new MA.Collections.Movies();
  MA.composites.movies = new MA.Views.Composites.Movies({
    itemView: MA.Views.Items.Movie,
    collection: MA.collections.movies
  });
  MA.collections.movies.fetch();
});

模板:

 <div id="movies">
   movies
 </div>

ItemView:

MA.Views.Items.Movie = Backbone.Marionette.ItemView.extend({
  template: 'items/movie',

  views: {}
});

和ItemView模板:

<div class="item">
  {{ title }}
</div>

生成的HTML如下所示:

extra wrappers

1 个答案:

答案 0 :(得分:0)

问题似乎是我将CompositeView与CollectionView混合在一起。通过在视图上添加className属性,解决方案可以快速显示。 ItemView不应在模板中包含包div,因为它是由ItemView添加的。