gpt4 book ai didi

javascript - Backbone.js - 销毁 Marionette Controller

转载 作者:行者123 更新时间:2023-12-03 11:10:17 26 4
gpt4 key购买 nike

我在销毁 Marionette Controller 时遇到问题。我仍在思考 Marionette,更具体地说是 Backbone 垃圾收集......

该 Controller 实例化多个 View ,每个 View 可能有多个绑定(bind)事件监听器。代码看起来像这样:

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

Controller 仍然存在,尽管 onDestroy 确实触发了..

这可能是 View 仍然具有绑定(bind)事件监听器的问题吗?如果代码看起来很奇怪,我很抱歉...这是从 Coffeescript 翻译的。

最佳答案

为了调用 destroy 方法,Marionette Controller 在其原型(prototype)上定义了一个“close”方法:

controller.close(); 

调用的方法是onClose

有关信息,您可以在控制台中检查:

enter image description here

关于javascript - Backbone.js - 销毁 Marionette Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27628998/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com