Error : CollectionView require ItemView

Error : CollectionView require ItemView

我的例子:

var stooges = [{ name: 'moe', age: 44, userid: 1}, 
               { name: 'larry', age: 44, userid: 2}, 
               { name: 'curly', age: 44, userid: 3}];





var StoogeModel = Backbone.Model.extend({});


var StoogeCollection = Backbone.Collection.extend({
  model: StoogeModel
});



var StoogeItemView = Backbone.Marionette.ItemView.extend({
  tagName: "tr",
  template: '#stooge-template'
});

var StoogesCollectionView = Backbone.Marionette.CollectionView.extend({
  tagName: "table",
  childView: StoogeItemView
});






var myStooges = new StoogeCollection(stooges);

var myStoogesView = new StoogesCollectionView({ collection: myStooges  });


myStoogesView.render();

document.body.appendChild(myStoogesView.el);

我在主题 backbone.js collection view example using marionette template 中阅读了这个示例,但出现错误:

marionette_backbone.js:1299 未捕获的 NoItemViewError: 必须指定 itemView

请帮帮我。

您在项目中使用 Marionette 1.x 作为依赖项,但您正在尝试使用 2.x 接口。 In 1.x CollectionViews used an "itemView", while 2.x changed the naming to "childView"

将您的 StoogesCollectionView 定义更改为使用 itemView 命名应该可以解决您的问题:

var StoogesCollectionView = Backbone.Marionette.CollectionView.extend({
  tagName: "table",
  itemView: StoogeItemView
});

或者,您可以 Marionette 升级到更新的版本。