我在破坏木偶控制器时遇到问题。我仍在全神贯注于木偶,更具体地说是骨干垃圾收集...。
该控制器实例化几个视图,每个视图可能具有多个绑定的事件侦听器。代码看起来像这样:
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确实触发,控制器仍在附近。
如果视图仍然具有绑定的事件侦听器,这可能是一个问题吗?如果代码看起来很奇怪,我深表歉意。
最佳答案
为了调用destroy方法,Marionette控制器在其原型上定义了一个“关闭”方法:
controller.close();
调用的方法是
onClose
。有关信息,您可以在控制台中进行检查:
关于javascript - Backbone.js-破坏 Marionette Controller ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27628998/