私のコードは fileType を取得し、それに応じて新しい 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);
}
});
私が間違っていることを助けてください。