在SAP Fiori中添加自定义库作为依赖项

时间:2015-01-19 01:08:51

标签: sapui5 sap-fiori

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

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

  

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

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

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

对于Fiori,您必须使用相对路径的约束。

例如,对于我的工作依赖,必须在

找到
  

/资源/ COM /富/文库

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

1 个答案:

答案 0 :(得分:3)

在你的Fiori应用程序中:

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

    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/");
    
  3. 现在您可以使用您的依赖项了。这就是为什么:

      

    在加载模块之前,其模块的最长注册前缀   搜索名称,并将关联的URL前缀用作前缀   对于请求URL。附加模块名称的其余部分   使用斜杠(' /')替换点('。')的请求网址。

         

    注册和搜索仅适用于全名域。

    Source: SAP UI5 API Documentation