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