【发布时间】:2014-12-24 07:21:25
【问题描述】:
我在销毁 Marionette 控制器时遇到问题。我仍在思考 Marionette,更具体地说是 Backbone 垃圾收集......
这个控制器实例化了几个视图,每个视图可能有几个绑定的事件监听器。代码如下所示:
myController.js
---------------
Marionette = require('backbone.marionette');
MyView = require('path/to/myView');
var MyController = Marionette.Controller.extend({
initialize: function(options) {
console.log('init');
}
onDestroy: function() {
console.log('should be destroyed');
}
showData: function() {
console.log('create view');
myView = new MyView();
}
});
appController.js
----------------
MyController = require('path/to/myController');
var controller = new MyController()
controller.showData();
controller.destroy();
output:
//init
//create view
//should be destroyed
控制器仍然存在,即使 onDestroy 确实触发了..
这可能是视图仍然具有绑定事件侦听器的问题吗?如果代码看起来很奇怪,我深表歉意……从咖啡脚本翻译过来。
【问题讨论】:
标签: javascript backbone.js marionette