Marionette 得到一个;缺失';itemViewcontainer'&引用;木偶的复合视图中出现错误
我有一个复合视图,在将模型添加到该视图的集合时引发以下错误:Marionette 得到一个;缺失';itemViewcontainer'&引用;木偶的复合视图中出现错误,marionette,Marionette,我有一个复合视图,在将模型添加到该视图的集合时引发以下错误:Uncaught ItemViewContainerMissingError:Missing itemViewContainer 这是我的合成视图: // VIEW B.ScrapeUpdate.View = Backbone.Marionette.CompositeView.extend({ // ITEM VIEW itemView: B.ScrapeUpdateItem.View, // ITEM VIE
Uncaught ItemViewContainerMissingError:Missing itemViewContainer
这是我的合成视图:
// VIEW
B.ScrapeUpdate.View = Backbone.Marionette.CompositeView.extend({
// ITEM VIEW
itemView: B.ScrapeUpdateItem.View,
// ITEM VIEW CONTAINER
itemViewContainer: 'tbody',
// TEMPLATE
template: Handlebars.compile(templates.find('#scrape-update-template').html()),
// INITIALIZE
initialize: function(options){
_.bindAll(this);
// Bind events
this.collection.bind('reset', this.renderCollection);
}
});
我发现,在绑定到集合之前在initialize中添加以下代码可以修复此错误:
var html = this.renderModel();
this.$el.html(html);
我不知道为什么我需要这两行代码,而我有其他的复合视图可以正常工作。以下是工作复合视图的示例:
B.BusinessSearchResults.View = Backbone.Marionette.CompositeView.extend({
// ITEM VIEW
itemView:B.Business.View,
// ITEM VIEW CONTAINER
itemViewContainer: 'tbody',
// TEMPLATE
template: Handlebars.compile(templates.find('#business-search-results-template').html()),
// INITIALIZE
initialize: function(options){
_.bindAll(this);
// Bind events
this.collection.bind('reset', this.renderCollection);
}
});
两种观点似乎没有区别,所以我不确定是什么错了
// INITIALIZE
initialize: function(options){
_.bindAll(this);
// Bind events
this.collection.bind('reset', this.renderCollection);
}
这些代码行是不需要的。CompositeView为您提供了现成的服务。很可能是包含此代码导致了问题。注释掉this.collection.bind
行,看看是否仍然出现错误