我一直在学习主从演示,下面是Master.controller.js中的一个片段

onInit : function() {
    this.getView().addEventDelegate({
        onBeforeFirstShow: function () {
            this.getOwnerComponent().oListSelector.setBoundMasterList(oList);
        }.bind(this)
    });
}


我无法理解该事件委托,因为我没有在任何控件/视图API文档中看到onBeforeFirstShow事件。

这是只是用户定义的事件还是预定义的事件?



我试过了

this.getView().addEventDelegate({
    onBeforeFirstShow: function () {
        console.log("onBeforeFirstShow");
    }.bind(this),
    onAfterRendering: function () {
        console.log("onAfterRendering");
    }.bind(this)
});


看来它发生在onAfterRendering之前。除了:


this.getView().onAfterRendering返回了function
this.getView().onBeforeFirstShow返回了undefined


我已经搜索了ControllerView的文档以及sap.ui.core.mvc.Controllersap.ui.core.mvc.View的源代码。只有四种生命周期方法。

最佳答案

事件beforeFirstShow可用于该视图,因为该视图是NavContainer的直接聚合子级。除此之外,目前还有


afterHide
afterShow
beforeHide
beforeShow


当发生导航并显示/隐藏子控件时,这些事件由其子控件(在本例中为视图)上的sap.m.NavContainer触发。

关于javascript - 为什么onBeforeFirstShow可以工作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44882085/

10-12 05:27