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 被触发。

希望对您有所帮助。