将Backbone.js与Marionette.js一起使用(Go Derick Bailey!)。需要检测何时从页面中删除视图。具体来说,我用另一种观点覆盖它。
是否有一个事件我可以检测到我可以重载以检测何时发生这种情况?
谢谢!
答案 0 :(得分:11)
Marionette为此目的提供了View.onClose
方法:
Backbone.Marionette.ItemView.extend({
onClose: function(){
// custom cleanup or closing code, here
}
});
在vanilla Backbone中,您可以覆盖View.remove
方法:
Backbone.View.extend({
remove: function(){
// custom cleanup or closing code, here
// call the base class remove method
Backbone.View.prototype.remove.apply(this, arguments);
}
});
如果您只是破坏视图的DOM元素,这些方法都不会起作用。如果是这种情况,解决方案很简单:不要这样做。在显示另一个视图之前,先显式删除上一个视图。
答案 1 :(得分:2)
区域展示功能将完成您正在寻找的大部分内容
https://github.com/marionettejs/backbone.marionette/blob/master/docs/marionette.region.md#basic-use
查看页面后面的on show事件