2015-02-05 86 views
1
控制器生命週期的OnInit胡克()的

鑑於我有一個視圖App.view.xml其包括視圖Login.view.xml秩序sap.m.NavContainer

<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()我期望來自應用程序控制器的onInit()在登錄控制器的onInit()之前被調用。 但這是相反的。登錄控制器的生命週期鉤onInit()在App控制器的onInit()之前被調用。

應用程序視圖由sap.ui.core.UIComponent實例化/創建。

有人可以解釋我爲什麼嗎?

回答

1
onInit == onAfterInit 

sap.ui.core.mvc.View::_initCompositSupport

視圖發射以及所述視圖的初始化方法中,創建其內容。之後的東西完成後,之後初始的視圖被激發。

希望這會有所幫助。

+0

因此,如果我想在登錄控制器中發佈一個事件,並且應用控制器訂閱了此事件,那麼您將在哪個生命週期掛鉤中添加事件總線方法? – Christoph 2015-02-05 15:58:27