我一直在学习master-detail demo,下面是Master.controller.js
中的一个片段
onInit : function() {
this.getView().addEventDelegate({
onBeforeFirstShow: function () {
this.getOwnerComponent().oListSelector.setBoundMasterList(oList);
}.bind(this)
});
}
我无法理解事件委托(delegate),因为我没有在任何控件/ View API 文档中看到 onBeforeFirstShow
事件。
这是用户定义的事件还是预定义的事件?
我试过了
this.getView().addEventDelegate({
onBeforeFirstShow: function () {
console.log("onBeforeFirstShow");
}.bind(this),
onAfterRendering: function () {
console.log("onAfterRendering");
}.bind(this)
});
好像发生在onAfterRendering
之前。此外:
this.getView().onAfterRendering
返回函数
this.getView().onBeforeFirstShow
返回undefined
。
我在Controller的文档中搜索过和 View , 以及 sap.ui.core.mvc.Controller 的源代码和 sap.ui.core.mvc.View .只有四种生命周期方法。
最佳答案
事件 beforeFirstShow
可用于 View ,因为该 View 是 NavContainer
的直接聚合子级.除此之外,目前还有
隐藏后
afterShow
隐藏之前
beforeShow
那些事件是由 sap.m.NavContainer
触发的当发生导航并显示/隐藏子控件时,在其子控件(在我们的示例中为 View )上。
关于javascript - 为什么 onBeforeFirstShow 有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44882085/