gpt4 book ai didi

marionette - 在 Marionette 的复合 View 中获取 "Missing ' itemViewcontainer'"错误

转载 作者:行者123 更新时间:2023-12-01 06:36:19 27 4
gpt4 key购买 nike

我有一个复合 View ,在将模型添加到 View 集合时抛出以下错误:Uncaught ItemViewContainerMissingError: Missing itemViewContainer
这是我的复合 View :

// 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);
}
});

我发现在绑定(bind)到集合之前在初始化中添加以下代码可以修复错误:
    var html = this.renderModel();
this.$el.html(html);

当我有其他可以正常工作的复合 View 时,我不确定为什么需要这两行代码。这是一个工作复合 View 的示例:
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行,看看你是否仍然得到错误。

关于marionette - 在 Marionette 的复合 View 中获取 "Missing ' itemViewcontainer'"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14463678/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com