Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Backbone.js 主干视图:陷入僵尸事件_Backbone.js_Marionette - Fatal编程技术网

Backbone.js 主干视图:陷入僵尸事件

Backbone.js 主干视图:陷入僵尸事件,backbone.js,marionette,Backbone.js,Marionette,我的代码获取文件类型并相应地启动新的ImageView var frameIdRegion = new Marionette.Region({ el: '#viewerId' }); // Create a new Backbone Marionette View with item model. Render View and Show it on Screen.

我的代码获取文件类型并相应地启动新的ImageView

var frameIdRegion = new Marionette.Region({
                    el: '#viewerId'
                });


                // Create a new Backbone Marionette View with item model. Render View and Show it on Screen.
                if(fileType === 'Image'){
                    frameIdRegion.close(imageView);
                    frameIdRegion.reset();
                    var imageView = new ImageView({model: item});                   
                    frameIdRegion.show(imageView);              
                    $(".frameId img").show();
                    $(".frameId img").load(function(){
                        $("#fit_to_screen").trigger('click');
                    });
                    imageView.close();
                }
                else if(fileType === 'pdf'){
                    var objectView = new ObjectView({model: item});
                    frameIdRegion.reset();
                    frameIdRegion.show(objectView);
                    $("#pdf_viewer").show();
                    $('#pdf_viewer').trigger('focus');
                }
                else if(fileType === 'unsupported'){
                    var errorView = new ErrorView({model: item});
                    frameIdRegion.reset();
                    frameIdRegion.show(errorView);
                }
但是当我启动一个新的ImageView时,我的ImageView的旧实例没有被清除。我的事情发生了很多次。这是我的ImageView代码

    var ImageView = Marionette.ItemView.extend({
          template: template,
          className: 'frameId',
    onClose: function(){
             this.remove();
          this.unbind();
          this.model.unbind("change", this.modelChanged);
          }
});

请帮助我,我做错了什么?

尝试使用backbones
listenTo
函数。它连接到调用它的任何对象,因此当您的
ItemView
被释放时,事件侦听器也会被释放

如果您确实需要,它还有一个
stopListening
方法。当您的视图被删除时,它应该自动停止侦听由
listenTo