在我的应用中,我正在向content
地区和header,footer
添加观看次数。在我添加视图之前,我试图找到是否存在控制器。如果是这样,我试图关闭这些区域,然后再添加另一个区域:
if(socialApp.Controller) {
socialApp.Controller.layout.header.close();
socialApp.Controller.layout.content.close();
socialApp.Controller.layout.footer.close();
}
但我收到了错误。
而不是关闭我使用empty()
方法可以正常工作。
if(socialApp.Controller) {
socialApp.Controller.layout.header.empty();
socialApp.Controller.layout.content.empty();
socialApp.Controller.layout.footer.empty();
}
我的所作所为是对的?有谁确认我好吗?
注意:我是否还需要close
控制器/视图..!?
我正在使用Backbone.Marionette
v2.1.0
。
提前谢谢。
答案 0 :(得分:6)
来自Marionette v2.1.0 Region docs
如果通过调用show将当前视图替换为新视图,默认情况下它会自动销毁上一个视图。
在第一次渲染之后,所有后续渲染将通过调用它们上的空方法来强制清空每个区域。这将强制区域中的每个视图以及子视图(如果有的话)也被销毁。
因此,我认为您不需要到empty()
手动
答案 1 :(得分:-1)
define(["app"], function (app) {
return {
clearRegions: function () {
app.topRegion.reset();
app.bottomRegion.reset();
app.wrapRegion.reset();
}
}
});
controller.js
index = function () {
helpers.clearRegions();
}