为什么onBeforeFirstShow有效?

问题描述 投票:2回答:1

我一直在学习大师级细节演示,下面是Master.controller.js的一个片段

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

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

这是一个用户定义的事件或预先定义的事件吗?


我试过了

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的源代码。只有四种生命周期方法。

javascript sapui5
1个回答
1
投票

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

  • afterHide
  • afterShow
  • beforeHide
  • beforeShow

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

© www.soinside.com 2019 - 2024. All rights reserved.