我有一个SAPUI5面板,可以出于各种原因在各种情况下间接销毁(例如,在这个例子中,父节点的父节点被销毁)。因此,我必须使用来自控件本身的函数钩子。
我尝试调用退出函数(基于this Stack Overflow问题和this SAPUI5文档)
var oGrandParentPanel = new sap.m.Panel();
var oParentPanel = new sap.m.Panel();
var oPanel = new sap.m.Panel({
exit: function(){
alert("FOOBAR!");
}});
oParentPanel.addContent(oPanel);
oGrandParentPanel.addContent(oParentPanel);
oGrandParentPanel.destroy();
我想要一个“FOOBAR!”警报,但我没有得到它。
答案 0 :(得分:2)
我认为你的生活周期方法与事件有关。生命周期方法在控件中定义,控件可以实现或不实现。事件是您可以将自己的功能绑定到的钩子。
如果您希望有一个调用事件的面板(您可以将自己的逻辑附加到),则可以继承面板控件。您可以在元数据中定义新事件,然后在onExit
方法中,您可以触发该事件。
如果您在用户关闭浏览器时快速做某事很有意思,那么您还可以使用window.onbeforeunload
和window.onunload
。不幸的是,它们不是100%独立于浏览器,并且不能保证它们将被调用。