sap.m.NavContainer 中控制器生命周期挂钩 onInit() 的顺序
Order of Controller Lifecycle Hook onInit() in sap.m.NavContainer
鉴于我有一个视图 App.view.xml 其中包括视图 Login.view.xml:
<mvc:View
xmlns:mvc="sap.ui.core.mvc"
xmlns="sap.m"
displayBlock="true"
controllerName="App">
<Shell showLogout="false">
<NavContainer id="loginNavContainer">
<mvc:XMLView id="loginView" viewName="Login" />
</NavContainer>
</Shell>
</mvc:View>
当我向生命周期挂钩 App.view.controller.onInit()
和 Login.view.controller.onInit()
添加断点时,我希望 App 控制器的 onInit()
在 onInit()
之前被调用登录控制器。
但情况恰恰相反。 Login控制器的生命周期钩子onInit()
在App控制器的onInit()
之前被调用。
应用视图是 instantiated/created sap.ui.core.UIComponent。
谁能解释一下为什么?
onInit == onAfterInit
从 sap.ui.core.mvc.View::_initCompositSupport
中解雇
视图及其内容是在视图的初始化方法中创建的。完成这些之后,视图的 onAfterInit 被触发。
希望对您有所帮助。
鉴于我有一个视图 App.view.xml 其中包括视图 Login.view.xml:
<mvc:View
xmlns:mvc="sap.ui.core.mvc"
xmlns="sap.m"
displayBlock="true"
controllerName="App">
<Shell showLogout="false">
<NavContainer id="loginNavContainer">
<mvc:XMLView id="loginView" viewName="Login" />
</NavContainer>
</Shell>
</mvc:View>
当我向生命周期挂钩 App.view.controller.onInit()
和 Login.view.controller.onInit()
添加断点时,我希望 App 控制器的 onInit()
在 onInit()
之前被调用登录控制器。
但情况恰恰相反。 Login控制器的生命周期钩子onInit()
在App控制器的onInit()
之前被调用。
应用视图是 instantiated/created sap.ui.core.UIComponent。
谁能解释一下为什么?
onInit == onAfterInit
从 sap.ui.core.mvc.View::_initCompositSupport
视图及其内容是在视图的初始化方法中创建的。完成这些之后,视图的 onAfterInit 被触发。
希望对您有所帮助。