Marionette.js Regions
有一个close
事件,他们可以告诉自己是否在Regions
之一中关闭了自己的一个子视图。
我遇到的问题是,如果子视图调用自身关闭,则此close
事件不会触发。
请参阅以下内容:
var SubView = Marionette.ItemView.extend({
// suppose close is called from the region item itself...
internalClose: function() {
this.close();
},
});
var Layout = Marionette.Layout.extend({
template: '<div class="region1"></div>',
regions: {
region1: '.region1',
},
onRender: function() {
this.region1.show(new SubView());
// When the SubView calls its own close,
// region1 does not register a close event.
this.region1.on('close', function() {
// self destruct or something exciting...
});
},
});
如何获取
ItemView
与布局进行通信,并告诉它已关闭(例如,通过点击ItemView
中的退出按钮或其他方法)。当Layout
关闭时,我需要ItemView
来操纵其自身的附加DOM。 最佳答案
将侦听器附加到区域的show
事件,并侦听当前视图的close
事件:
var region = this.region1;
region.on('show', function() {
region.currentView.on('close', function() {
// this message will cause the layout to self destruct...
});
// NOTE: You won't have to clean up this event listener since calling
// close on either the region or the view will do it for you.
});
您可以代替在该区域上监听
close
来执行此操作,因为这仅表示currentView
的关闭。关于javascript - Marionette.js-ItemView获取父区域引用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18840087/