我們?cè)诓殚?SAP UI5 官網(wǎng)的時(shí)候,有時(shí)會(huì)看見關(guān)于 namespace 即命名空間的資源介紹,如下圖所示。 這里的符號(hào) n 代表 在一個(gè)加載完畢的 SAP UI5 應(yīng)用瀏覽器窗口里,打開 Chrome 開發(fā)者工具 console 面板,輸入命名空間,比如 在 SAP UI5 中,命名空間用于組織代碼并避免命名沖突。它可以幫助開發(fā)者定義應(yīng)用程序中的資源位置。例如,在引導(dǎo)時(shí),可以在 index.html 中使用 SAP UI5 namespace 在 index.html 中的使用舉個(gè)例子,如果在 index.html 中設(shè)置了如下命名空間: <script id='sap-ui-bootstrap' src='resources/sap-ui-core.js' data-sap-ui-theme='sap_bluecrystal' data-sap-ui-libs='sap.m' data-sap-ui-compatVersion="edge" data-sap-ui-resourceroots=' { "sap.ui.demo.db" : "./" }' > </script> 那么從現(xiàn)在開始, 在 SAP UI5 中,命名空間的限制主要與開發(fā)人員在引導(dǎo)時(shí)設(shè)置的命名空間有關(guān)。 至于命名約定,可以使用 company.project 等形式。但是,建議盡量簡化命名空間,以便在需要時(shí)不必輸入過多的點(diǎn)號(hào)。 我們?cè)倏纯?SAP UI5 命名空間在 JavaScript 代碼中的使用。 SAP UI5 namespace 在控制器 JavaScript 編程中的使用命名空間的使用在各種編程語言中都很常見,比如在Java中就有包(package)來作為命名空間。在SAP UI5中,命名空間的概念和使用與此類似。比如在定義一個(gè)控制器或組件時(shí),我們通常會(huì)使用命名空間來指定其位置。例如,如果我們有一個(gè)名為"myapp"的應(yīng)用,那么我們可能會(huì)將一個(gè)名為"HomeController"的控制器定義在"myapp.controller"這個(gè)命名空間下。 下面是一個(gè)SAP UI5中使用命名空間的例子: sap.ui.define([ "sap/ui/core/mvc/Controller", "sap/m/MessageToast"], function (Controller, MessageToast) { "use strict"; return Controller.extend("myapp.controller.Home", { onShowHello: function () { MessageToast.show("Hello World"); } });}); 在這個(gè)例子中,我們定義了一個(gè)控制器,并使用"myapp.controller.Home"作為它的命名空間。這樣,我們就能夠在應(yīng)用的其他部分通過這個(gè)命名空間來引用或使用這個(gè)控制器。例如,我們可以在一個(gè)視圖中通過以下方式來使用這個(gè)控制器: <mvc:View controllerName="myapp.controller.Home" xmlns:mvc="sap.ui.core.mvc" displayBlock="true" xmlns="sap.m"> <App> <pages> <Page title="{i18n>title}"> <content> <Button text="{i18n>showHelloButtonText}" press=".onShowHello" /> </content> </Page> </pages> </App></mvc:View> 在這個(gè)例子中,我們通過"controllerName"屬性指定了視圖使用的控制器,其值就是前面定義控制器時(shí)使用的命名空間。 除了用于組織代碼,命名空間在SAP UI5中還有另一個(gè)重要的作用,那就是用于定位資源。在SAP UI5中,系統(tǒng)會(huì)根據(jù)命名空間來確定一個(gè)控制器、視圖、組件等的物理位置。例如,對(duì)于上面的"myapp.controller.Home",SAP UI5會(huì)將其轉(zhuǎn)換為一個(gè)路徑,比如"myapp/controller/Home.controller.js",然后在這個(gè)路徑下查找對(duì)應(yīng)的JS文件。因此,命名空間實(shí)際上也定義了我們的項(xiàng)目結(jié)構(gòu)。 參考文獻(xiàn)(1) How use Namespaces in sapui5? - Stack Overflow. https://stackoverflow.com/questions/40273481/how-use-namespaces-in-sapui5. (2) Namespaces in SAPUI5 - Stack Overflow. https://stackoverflow.com/questions/45739780/namespaces-in-sapui5. (3) Best Practice for SAPUI5 Application Namespace | SAP Community. https://answers.sap.com/questions/757786/best-practice-for-sapui5-application-namespace.html. |
|