我知道错误是由 jQuery 生成的。有什么方法可以构建一个backbone.marionette 应用程序来避免以下错误?
Uncaught TypeError: Cannot call method 'show' of undefined
发生错误是因为我创建了一个具有区域的布局。在 onRender 函数中,我加载一个集合并执行 fetch。提取完成后,我填充该区域。如果我切换到不同的视图,则会因为 self.content.show 不再存在而触发错误。
var view = Marionette.Layout.extend({
template: _.template(tplPage),
className: 'customers-view',
regions:{
content: '.customers-content'
},
onRender: function(){
var self = this,
colCustomers = new ColCustomers();
colCustomers.fetch({success: function(){
self.content.show(new ViewCustomersList({collection: colCustomers}));
}});
}
});
注意:目前我将 self.content.show() 包装在 try catch 中并且它的工作。理想情况下,我会避免这种情况。