SAP UI5 应用中的 sap.ui.require.toUrl 使用场景

简介: SAP UI5 应用中的 sap.ui.require.toUrl 使用场景

下图是笔者 SAP UI5 开发教程中使用到的一段代码:



运行时 toUrl 方法打印的值:.


这个 toUrl 的返回值,在 index.html 里通过 data-sap-ui-resourceroots 指定:



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


此方法的典型且唯一建议的用法是在一个 JavaScript 资源(文件)中对 sap.ui.define 进行一次顶级调用。当一个模块第一次被其模块ID请求时,根据ID和当前配置确定对应的资源。资源将被加载并执行,然后将执行顶级 sap.ui.define 调用。


如果该调用中省略了模块 ID,它将被用于请求模块的 ID 替换。作为准备步骤,将加载依赖项及其传递依赖项。然后,模块值(其导出)将被确定:如果静态值(对象,文字)作为 vFactory 给出,则该值将是模块值。如果给定了一个函数,则该函数将被调用(将声明的依赖项的模块导出作为函数的参数提供)并且其返回值将用作模块导出值。框架在内部将结果值与模块 ID 相关联,并将其提供给模块的原始请求者。每当再次请求模块时,将返回相同的导出值(模块仅执行一次)。



相关文章
|
4月前
|
前端开发 搜索推荐 开发者
SAP UI5 sap.m.Column 控件的 minScreenWidth 属性介绍
SAP UI5 sap.m.Column 控件的 minScreenWidth 属性介绍
|
15天前
|
Linux C++ Windows
【Azure 应用服务】Azure App Service(Windows)环境中如何让.NET应用调用SAP NetWeaver RFC函数
【Azure 应用服务】Azure App Service(Windows)环境中如何让.NET应用调用SAP NetWeaver RFC函数
【Azure 应用服务】Azure App Service(Windows)环境中如何让.NET应用调用SAP NetWeaver RFC函数
|
4月前
|
存储 安全 测试技术
使用 Visual Studio Code 创建 SAP UI5 项目遇到 self-signed security certificate 相关问题
使用 Visual Studio Code 创建 SAP UI5 项目遇到 self-signed security certificate 相关问题
|
26天前
数字化核心构建问题之SAP为应用软件扎根客户打基础如何解决
数字化核心构建问题之SAP为应用软件扎根客户打基础如何解决
10 0
|
4月前
|
监控 测试技术
SAP 电商云修改 Product Catalog Staged 版本数据后,同步到 online 版本的 UI 操作
SAP 电商云修改 Product Catalog Staged 版本数据后,同步到 online 版本的 UI 操作
什么是 SAP ABAP 里的 Subscreen
什么是 SAP ABAP 里的 Subscreen
什么是 SAP ABAP 里的 Subscreen
|
4月前
|
JavaScript 前端开发
试读版:如何找出 SAP 标准 Fiori 应用某个按钮点击后执行的 JavaScript 源代码
试读版:如何找出 SAP 标准 Fiori 应用某个按钮点击后执行的 JavaScript 源代码
关于 SAP ABAP OData 服务如何实现 Deep Insert 场景 - SAP 应用的标准行为试读版
关于 SAP ABAP OData 服务如何实现 Deep Insert 场景 - SAP 应用的标准行为试读版
|
4月前
|
开发者 UED
关于 SAP UI5 sap.m.Column 的 demandPopin 属性
关于 SAP UI5 sap.m.Column 的 demandPopin 属性
|
4月前
|
JavaScript 前端开发 开发者
SAP UI5 控件 sap.m.ListBase 的 inset 属性的作用介绍
SAP UI5 控件 sap.m.ListBase 的 inset 属性的作用介绍