天天看点

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 模块。

继续阅读