【问题标题】:Adding a custom library as a dependency in SAP Fiori在 SAP Fiori 中添加自定义库作为依赖项
【发布时间】:2015-01-19 01:08:51
【问题描述】:

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

SAP Fiori Launchpad for Developers -> Launchpad 应用的最佳实践

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

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

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

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

例如,我的依赖项必须在以下位置找到它才能工作

/resources/com/foo/library

将自定义库上传到 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,所以我假设必须找到相对于资源的库

【问题讨论】:

  • 您是否尝试过在您的应用程序中使用 jQuery.sap.registerModulePath("com.foo.library", "[YOUR URL]") ,然后您可以添加组件并且前缀将被正确解析.
  • @sirion 我把代码放在最上面,效果很好,谢谢
  • 但是 Fiori Launchpad for Developers 的最后一点说,“避免在 Component.js 中使用 jQuery.sap.registerModulePath”!
  • @sakthi:不要在组件内部使用它 - 在使用该组件的应用程序的组件外部使用它。
  • @sirion:但这里的问题是如何将另一个组件添加为组件的依赖项!

标签: sapui5 sap-fiori


【解决方案1】:

在您的 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。

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

Source: SAP UI5 API Documentation

【讨论】:

  • 在较新版本的 SAPUI5 中,如果清单中说明了模块,则会加载它们。对于年长的开发人员必须自己管理
猜你喜欢
  • 2019-05-07
  • 2018-11-04
  • 1970-01-01
  • 2018-09-27
  • 1970-01-01
  • 1970-01-01
  • 2018-09-10
  • 2021-08-21
  • 1970-01-01
相关资源
最近更新 更多