Sapui5 从不调用嵌套视图的onBeforeShow

Sapui5 从不调用嵌套视图的onBeforeShow,sapui5,Sapui5,我为嵌套视图的onInit定义了一个处理程序: this.getView().addEventDelegate({ onBeforeShow: jQuery.proxy(function(oEvent) { this.onBeforeShow(oEvent); }, this) }); 然后: onBeforeShow: function(){ alert("Hello!"); } 但从未调用此处理程序 每次显示嵌套视图时,我需要在嵌套视图的控制器中触

我为嵌套视图的onInit定义了一个处理程序:

this.getView().addEventDelegate({
    onBeforeShow: jQuery.proxy(function(oEvent) {
        this.onBeforeShow(oEvent);
    }, this)
});
然后:

onBeforeShow: function(){
    alert("Hello!");
}
但从未调用此处理程序

每次显示嵌套视图时,我需要在嵌套视图的控制器中触发一个事件。如何执行此操作?

,只能在导航控件(在本例中,嵌套视图是NavContainer的直接子级)时调用,如中所述:

当发生导航且显示/隐藏子控件时,事件由其子控件上的触发

这意味着,您必须将嵌套视图包装在NavContainer中,并尽可能将其与Router结合使用,以隐藏和显示视图,以便onBeforeShow工作

下面是一个工作示例:。如果打开浏览器控制台,将看到每次显示嵌套视图时都会调用onBeforeShow