我一直在学习大师级细节演示,下面是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
。我搜索了Controller和View的文档,以及sap.ui.core.mvc.Controller和sap.ui.core.mvc.View的源代码。只有四种生命周期方法。
事件beforeFirstShow
可用于视图,因为视图是NavContainer
的直接聚合子项。除此之外,目前还有
afterHide
afterShow
beforeHide
beforeShow
当导航发生并显示/隐藏子控件时,这些事件由sap.m.NavContainer
在其子控件(在我们的示例中为视图)上触发。