天天看点

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

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

SAP UI5 应用中的 sap.ui.require 使用场景
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.

.ui.require(['sap/ui/model/json/JSONModel', 'sap/ui/core/UIComponent'], function(JSONModel,UIComponent) {

    var MyComponent = UIComponent.extend('MyComponent', {
      ...
    });
    ...

  });      

Unified Resource Names

  • 它们由一个非空的名称段序列组成
  • 段由正斜杠​

    ​/​

    ​ 分隔
  • 名称段仅由 URL 路径段字符组成。 建议仅使用 ASCII 字母(大写或小写)、数字和特殊字符​

    ​$​

    ​​、​

    ​_​

    ​​、​

    ​-​

    ​​、​

    ​.​

    ​)
  • 不支持空名称段
  • 仅由点组成的名称是保留的,不得用于资源
  • 名称区分大小写,尽管底层服务器可能不区分大小写
  • 未指定有关 URL 编码字符的行为,应避免使用​

    ​%ddd​

    ​ 表示法
  • 前导斜杠的含义未定义,但将来可能会定义。 因此应该避免

继续阅读