下图是笔者 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', {
...
});
...
});
Unified Resource Names
一些 UI5 API 使用统一资源名称 (简称 URN) 作为它们处理的资源的命名方案(例如 Javascript、CSS、JSON、XML ......)。 URN 类似于 URL 的路径组件:
- 它们由一个非空的名称段序列组成
- 段由正斜杠
/
分隔 - 名称段仅由 URL 路径段字符组成。 建议仅使用 ASCII 字母(大写或小写)、数字和特殊字符
$
、_
、-
、.
) - 不支持空名称段
- 仅由点组成的名称是保留的,不得用于资源
- 名称区分大小写,尽管底层服务器可能不区分大小写
- 未指定有关 URL 编码字符的行为,应避免使用
%ddd
表示法 - 前导斜杠的含义未定义,但将来可能会定义。 因此应该避免