关于前端:SAP-UI5-应用中的-sapuirequiretoUrl-使用场景

40次阅读

共计 975 个字符,预计需要花费 3 分钟才能阅读完成。

下图是笔者 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 相关联,并将其提供给模块的原始请求者。每当再次申请模块时,将返回雷同的导出值(模块仅执行一次)。

正文完
 0