下图是笔者 SAP UI5 开发教程中使用到的一段代码:
var mPath = sap.ui.require.toUrl('sap/ui5/walkthrough') + "/";
console.log('Jerry: ', mPath);
本文介绍 sap.ui.require
的使用场景和明细。
其主要用途是,解析一个或多个 SAP UI5 模块依赖关系。
工作模式为,单个模块导出值的同步检索(探测)。当使用单个字符串调用时,该字符串被假定为已加载模块的 ID,并返回该模块的导出。 如果模块还没有被加载,或者它是一个没有 shim 的非 UI5 模块(例如第三方模块),则返回 undefined。
此签名变体允许在不启动模块加载的情况下同步访问 SAP UI5 模块的导出(export).
一个例子:
var JSONModel = sap.ui.require("sap/ui/model/json/JSONModel");
对于已知为 UI5 模块的模块,此签名变体可用于检查模块是否已加载。
如果给定字符串数组和(可选)回调函数,则字符串被解释为模块 ID,并加载相应的模块(及其传递依赖项),然后回调函数将被异步调用。 指定模块的模块导出将作为参数提供给回调函数,其顺序与它们在依赖项数组中出现的顺序相同。
异步用例的返回值恒定为 undefined.
看一个例子:
sap.ui.require(['sap/ui/model/json/JSONModel', 'sap/ui/core/UIComponent'], function(JSONModel,UIComponent) {
var MyComponent = UIComponent.extend('MyComponent', {
...
});
...
});
一些 UI5 API 使用统一资源名称 (简称 URN) 作为它们处理的资源的命名方案(例如 Javascript、CSS、JSON、XML …)。 URN 类似于 URL 的路径组件:
/
分隔$
、_
、-
、.
)%ddd
表示法