摘要:和的綁定是通過(guò)這個(gè)方法完成的實(shí)例也通過(guò)工廠模式創(chuàng)建一旦執(zhí)行之后,和的關(guān)聯(lián)關(guān)系就建立起來(lái)了。最后運(yùn)行時(shí)的實(shí)例和之前我們?cè)诘牡臉?gòu)造函數(shù)中的指針一樣,證明兩個(gè)變量指向的是同一個(gè)實(shí)例。
UI5
例如我在UI5的界面上畫一個(gè)按鈕,點(diǎn)擊之后彈出一個(gè)Alert dialog。
在XML view里只定義了controller的名稱和事件處理函數(shù)的名稱。那么按鈕被點(diǎn)擊之后,controller的onShowHello被觸發(fā)。但是,這個(gè)controller的實(shí)例是什么時(shí)候被創(chuàng)建, 并且關(guān)聯(lián)到這個(gè)申明它的XML view里呢?
在XMLView.js里,我定義的XML view的源代碼被加載之后,XMLView會(huì)調(diào)用XMLTemplateProcessor, 解析XML view的內(nèi)容,根據(jù)里面的control申明創(chuàng)建對(duì)應(yīng)的UI5控件實(shí)例。下圖的變量_xContent.innerHTML即為上圖XML view的源代碼。
XMLView的實(shí)例通過(guò)工廠模式創(chuàng)建之后,XMLView源代碼里定義的controller名稱sap.ui.demo.walkthrough.controller.App,會(huì)賦到oView實(shí)例的字段_controllerName上。
View和Controller的綁定是通過(guò)這個(gè)方法createAndConnectController完成:
connect controller to view after controller and control tree are fully initialized
Controller的實(shí)例也通過(guò)工廠模式創(chuàng)建:
一旦connectToView執(zhí)行之后,
oView和oController的關(guān)聯(lián)關(guān)系就建立起來(lái)了。
CRM WebClient UI每個(gè)UI component view里有一個(gè)built-in的屬性controller, 指向這個(gè)view對(duì)應(yīng)的controller實(shí)例。
在BSP的編程環(huán)境里,開(kāi)發(fā)人員根本無(wú)需操心這個(gè)controller實(shí)例的初始化,直接用就行。
那么View的controller實(shí)例究竟在什么時(shí)候被框架初始化的?
要自己搞清楚這個(gè)問(wèn)題,可以隨便找個(gè)BSP UI component做個(gè)實(shí)驗(yàn)。我找的是PRDHS。在其View的controller CL_PRDHS_HEADER_IMPL的構(gòu)造函數(shù)里設(shè)置斷點(diǎn):
打開(kāi)該view,從調(diào)用棧上下文即可得知BSP框架在什么地方初始化controller實(shí)例的。記下這個(gè)實(shí)例在ABAP runtime的地址編號(hào)4633:
同UI5邏輯類似,在CL_BSP_PAGE_BASE~CREATE_PAGE內(nèi)部,第190行創(chuàng)建controller的實(shí)例并將其同View實(shí)例建立關(guān)聯(lián)關(guān)系。
最后運(yùn)行時(shí)View的controller實(shí)例4633和之前我們?cè)赑RDHS/Header的controller CL_PRDHS_HEADER_IMPL的構(gòu)造函數(shù)中的me指針4633一樣,證明兩個(gè)變量指向的是同一個(gè)實(shí)例。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/68947.html
摘要:和的綁定是通過(guò)這個(gè)方法完成的實(shí)例也通過(guò)工廠模式創(chuàng)建一旦執(zhí)行之后,和的關(guān)聯(lián)關(guān)系就建立起來(lái)了。最后運(yùn)行時(shí)的實(shí)例和之前我們?cè)诘牡臉?gòu)造函數(shù)中的指針一樣,證明兩個(gè)變量指向的是同一個(gè)實(shí)例。 UI5 例如我在UI5的界面上畫一個(gè)按鈕,點(diǎn)擊之后彈出一個(gè)Alert dialog。showImg(https://segmentfault.com/img/remote/1460000014204282); ...
摘要:和的綁定是通過(guò)這個(gè)方法完成的實(shí)例也通過(guò)工廠模式創(chuàng)建一旦執(zhí)行之后,和的關(guān)聯(lián)關(guān)系就建立起來(lái)了。最后運(yùn)行時(shí)的實(shí)例和之前我們?cè)诘牡臉?gòu)造函數(shù)中的指針一樣,證明兩個(gè)變量指向的是同一個(gè)實(shí)例。 UI5 例如我在UI5的界面上畫一個(gè)按鈕,點(diǎn)擊之后彈出一個(gè)Alert dialog。showImg(https://segmentfault.com/img/remote/1460000014204282); ...
摘要:在以下簡(jiǎn)稱和以下簡(jiǎn)稱開(kāi)發(fā)團(tuán)隊(duì)都工作過(guò),這篇文章給出這兩款產(chǎn)品一些技術(shù)層面的比較。標(biāo)準(zhǔn)開(kāi)發(fā)方式和的雖然看起來(lái)都是風(fēng)格,但實(shí)現(xiàn)技術(shù)不同。而的標(biāo)準(zhǔn)則是基于和協(xié)作而成的。 如果您對(duì)SAP S/4HANA for Customer Management(以下簡(jiǎn)稱S4CRM)和SAP Cloud for Customer(以下簡(jiǎn)稱C4C)不甚熟悉,那我建議您可以先瀏覽我之前寫的這兩篇微信公眾號(hào)文章...
摘要:在以下簡(jiǎn)稱和以下簡(jiǎn)稱開(kāi)發(fā)團(tuán)隊(duì)都工作過(guò),這篇文章給出這兩款產(chǎn)品一些技術(shù)層面的比較。標(biāo)準(zhǔn)開(kāi)發(fā)方式和的雖然看起來(lái)都是風(fēng)格,但實(shí)現(xiàn)技術(shù)不同。而的標(biāo)準(zhǔn)則是基于和協(xié)作而成的。 如果您對(duì)SAP S/4HANA for Customer Management(以下簡(jiǎn)稱S4CRM)和SAP Cloud for Customer(以下簡(jiǎn)稱C4C)不甚熟悉,那我建議您可以先瀏覽我之前寫的這兩篇微信公眾號(hào)文章...
閱讀 1969·2021-09-04 16:45
閱讀 755·2019-08-30 15:44
閱讀 901·2019-08-30 13:07
閱讀 461·2019-08-29 16:06
閱讀 1385·2019-08-29 13:43
閱讀 1276·2019-08-26 17:00
閱讀 1530·2019-08-26 13:51
閱讀 2301·2019-08-26 11:48