3

我有一个自定义库 com.foo.library,我想将其作为我构建的类似 Fiori 的应用程序的依赖项。

面向开发人员的 SAP Fiori Launchpad -> Launchpad 应用程序的最佳实践

在 component.js 配置文件中声明配置信息,比如图标的位置、库依赖

有道理,将我的库添加为依赖项看起来像

    dependencies: {
        libs: ["sap.m", "sap.ui.layout", "com.foo.library"],
        components: []
    },

使用 Fiori,您必须使用相对路径。

例如,要使我的依赖项起作用,它必须位于

/resources/com/foo/图书馆

将自定义库上传到 ABAP SAPUI5 存储库并使用相对路径提供服务的步骤是什么?

编辑:

目前我已经使用 Component.init 加载了库

 sap.ui.getCore().loadLibrary("com.foo.library", "absolute path to library");

它可以工作,但是我想将库设置为依赖项

ComponentMetadata.prototype._loadDependencies = function() {
..
            if (aLibraries) {
            jQuery.each(aLibraries, function(i, sLib) {
                jQuery.sap.log.info("Component \"" + that.getName() + 
                sap.ui.getCore().loadLibrary(sLib);
            });
        }

从上面的代码我可以看到,当组件加载库依赖项时,没有选项可以传入 url,所以我假设必须相对于资源找到库

4

1 回答 1

4

在您的 Fiori 应用程序中:

  1. 将您的依赖项放入应用程序描述符(manifest.json)中(或者如果在 Component.js 内的配置中没有使用应用程序描述符)

    dependencies: {
        libs: ["sap.m", "sap.ui.layout", "com.foo.library"],
        components: [com.foo.component]
    }
    
  2. 让 sap.ui.core 知道在哪里搜索库的命名空间。(在 Component.js 的顶部)

    jQuery.sap.registerModulePath("com.foo", "/Path/on/the/server/");
    

现在你可以使用你的依赖了。这就是为什么:

在加载模块之前,会搜索其模块名称的最长注册前缀,并将关联的 URL 前缀用作请求 URL 的前缀。模块名称的其余部分通过将点 ('.') 替换为斜杠 ('/') 附加到请求 URL。

注册和搜索仅对全名段进行。

来源:SAP UI5 API 文档

于 2016-03-17T15:04:43.067 回答