天天看點

SAP UI5 應用中的 sap.ui.require.toUrl 使用場景

下圖是筆者 ​​SAP UI5 開發教程​​中使用到的一段代碼:

SAP UI5 應用中的 sap.ui.require.toUrl 使用場景

運作時 ​

​toUrl​

​​ 方法列印的值:​

​.​

SAP UI5 應用中的 sap.ui.require.toUrl 使用場景

這個 toUrl 的傳回值,在 ​

​index.html​

​​ 裡通過 ​

​data-sap-ui-resourceroots​

​ 指定:

SAP UI5 應用中的 sap.ui.require.toUrl 使用場景

toUrl 方法的計算,會考慮任何已配置的 ID 映射或資源路徑。它還支援路徑内的 ​

​./​

​​ 和 ​

​../​

​ 等相對段,但不支援通過這些路徑出現在輸入參數的最開頭。

如果相對導航會越過根命名空間(例如 ​

​sap.ui.require.toUrl("../")​

​)或當資源名稱以斜杠或相對段開頭時,将引發錯誤。

注意:toUrl 不解析傳回的 URL;是絕對 URL 還是相對 URL 取決于配置的 baseUrl 和路徑。

和 SAP UI5 過去曾經是一國的 Module Name syntax 的關聯關系

處理資源的舊 UI5 API(如 jQuery.sap.registerModulePath、jQuery.sap.require 和 jQuery.sap.declare)使用點分隔 ​

​.​

​​ 的命名方案(稱為 ​

​子產品名稱​

​),其動機是全局對象名稱 Javascript 中的命名空間。

新的 URN 方案更好地比對存儲在伺服器中的相應資源(檔案)的名稱,并且點(​

​.​

​)不再是資源名稱中的禁止字元。 這最終允許使用相同的 API 處理具有不同類型(擴充名)的資源,而不僅僅是 JS 檔案。

最後需要注意的是,URN 方案更好地比對 AMD 加載程式(如 requireJS)使用的命名約定。

​sap.ui.define​

​ 使用其 ID、依賴項和子產品導出值或工廠定義 JavaScript 子產品。

繼續閱讀