摘要:和的綁定是通過這個方法完成的實例也通過工廠模式創建一旦執行之后,和的關聯關系就建立起來了。最后運行時的實例和之前我們在的的構造函數中的指針一樣,證明兩個變量指向的是同一個實例。
UI5
例如我在UI5的界面上畫一個按鈕,點擊之后彈出一個Alert dialog。
在XML view里只定義了controller的名稱和事件處理函數的名稱。那么按鈕被點擊之后,controller的onShowHello被觸發。但是,這個controller的實例是什么時候被創建, 并且關聯到這個申明它的XML view里呢?
在XMLView.js里,我定義的XML view的源代碼被加載之后,XMLView會調用XMLTemplateProcessor, 解析XML view的內容,根據里面的control申明創建對應的UI5控件實例。下圖的變量_xContent.innerHTML即為上圖XML view的源代碼。
XMLView的實例通過工廠模式創建之后,XMLView源代碼里定義的controller名稱sap.ui.demo.walkthrough.controller.App,會賦到oView實例的字段_controllerName上。
View和Controller的綁定是通過這個方法createAndConnectController完成:
connect controller to view after controller and control tree are fully initialized
Controller的實例也通過工廠模式創建:
一旦connectToView執行之后,
oView和oController的關聯關系就建立起來了。
CRM WebClient UI每個UI component view里有一個built-in的屬性controller, 指向這個view對應的controller實例。
在BSP的編程環境里,開發人員根本無需操心這個controller實例的初始化,直接用就行。
那么View的controller實例究竟在什么時候被框架初始化的?
要自己搞清楚這個問題,可以隨便找個BSP UI component做個實驗。我找的是PRDHS。在其View的controller CL_PRDHS_HEADER_IMPL的構造函數里設置斷點:
打開該view,從調用棧上下文即可得知BSP框架在什么地方初始化controller實例的。記下這個實例在ABAP runtime的地址編號4633:
同UI5邏輯類似,在CL_BSP_PAGE_BASE~CREATE_PAGE內部,第190行創建controller的實例并將其同View實例建立關聯關系。
最后運行時View的controller實例4633和之前我們在PRDHS/Header的controller CL_PRDHS_HEADER_IMPL的構造函數中的me指針4633一樣,證明兩個變量指向的是同一個實例。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/52121.html
摘要:和的綁定是通過這個方法完成的實例也通過工廠模式創建一旦執行之后,和的關聯關系就建立起來了。最后運行時的實例和之前我們在的的構造函數中的指針一樣,證明兩個變量指向的是同一個實例。 UI5 例如我在UI5的界面上畫一個按鈕,點擊之后彈出一個Alert dialog。showImg(https://segmentfault.com/img/remote/1460000014204282); ...
摘要:和的綁定是通過這個方法完成的實例也通過工廠模式創建一旦執行之后,和的關聯關系就建立起來了。最后運行時的實例和之前我們在的的構造函數中的指針一樣,證明兩個變量指向的是同一個實例。 UI5 例如我在UI5的界面上畫一個按鈕,點擊之后彈出一個Alert dialog。showImg(https://segmentfault.com/img/remote/1460000014204282); ...
摘要:在以下簡稱和以下簡稱開發團隊都工作過,這篇文章給出這兩款產品一些技術層面的比較。標準開發方式和的雖然看起來都是風格,但實現技術不同。而的標準則是基于和協作而成的。 如果您對SAP S/4HANA for Customer Management(以下簡稱S4CRM)和SAP Cloud for Customer(以下簡稱C4C)不甚熟悉,那我建議您可以先瀏覽我之前寫的這兩篇微信公眾號文章...
摘要:在以下簡稱和以下簡稱開發團隊都工作過,這篇文章給出這兩款產品一些技術層面的比較。標準開發方式和的雖然看起來都是風格,但實現技術不同。而的標準則是基于和協作而成的。 如果您對SAP S/4HANA for Customer Management(以下簡稱S4CRM)和SAP Cloud for Customer(以下簡稱C4C)不甚熟悉,那我建議您可以先瀏覽我之前寫的這兩篇微信公眾號文章...
閱讀 3044·2021-11-19 11:31
閱讀 3129·2021-09-02 15:15
閱讀 985·2019-08-29 17:22
閱讀 1058·2019-08-29 16:38
閱讀 2464·2019-08-26 13:56
閱讀 833·2019-08-26 12:16
閱讀 1435·2019-08-26 11:29
閱讀 929·2019-08-26 10:12