Sapui5 请参阅单独部署的组件,以便在ui5应用程序中重用

Sapui5 请参阅单独部署的组件,以便在ui5应用程序中重用,sapui5,Sapui5,我正在开发一些应用程序,每个人都需要以相同的方式显示文档。为此,我创建了一个新组件,它在一个单独的组件中处理我的文档。然后我只想从我的不同应用程序中重用这个组件 为了嵌入重用组件,我在my view.xml中使用了如下内容: <core:ComponentContainer name="de.mycomp.base.DocViewer" component="de.mycomp.base.DocViewer" settings='\{"param1":"valu

我正在开发一些应用程序,每个人都需要以相同的方式显示文档。为此,我创建了一个新组件,它在一个单独的组件中处理我的文档。然后我只想从我的不同应用程序中重用这个组件

为了嵌入重用组件,我在my view.xml中使用了如下内容:

<core:ComponentContainer 
    name="de.mycomp.base.DocViewer" 
    component="de.mycomp.base.DocViewer"
    settings='\{"param1":"value1"\}'/>
在本例中,zdocviewer是重用组件部署到的bsp应用程序的名称。为了在webide和SAP云平台上也能使用,我需要在neo-app.json中添加一个条目 像这样:

    {
      "path": "/sap/bc/ui5_ui5/sap/zdocviewer",
      "target": {
        "type": "application",
        "name": "docviewer"
      },
      "description": "my base document viewer"
    },
其中,docviewer是已部署的应用程序的名称,该应用程序在SCP上具有重用组件。 类型应用程序表示此目的地是一个应用程序

到目前为止,这在内部部署和sap云上都有效。 但我的问题是我不想在Component.js中使用registerModulePath。几乎所有组件的配置都发生在manifest.json文件中。所以我尝试将此代码行移动到manifest.json中的配置中,但到目前为止我失败了

以下是我所做的:

  • 我在sap.ui5节中添加了一个依赖项,在依赖项条目中如下所示:
  • 我在sap.ui5部分中添加了以下条目
这里的问题是,不允许在资源根条目的值部分使用绝对路径。所以这是无效的: -/sap/bc/ui5_ui5/sap/zdocviewer -../sap/bc/ui5_ui5/sap/zdocviewer 只有这是有效的: -sap/bc/ui5_ui5/sap/zdocviewer -./sap/bc/ui5_ui5/sap/zdocviewer

因此,此注释仅适用于嵌入的组件,其中重用组件位于同一部署项目中但是这不是我对可重用组件的理解。因此,更改该组件中的某些内容将有必要将文件复制到使用该组件的所有应用程序项目中。它们都必须重新部署

所以现在我回退到jquery.sap.registerModulePath,因为它与已部署的组件一起工作,从其他独立组件引用它们。 或者有人知道如何在manifest.json中更好或更恰当地处理这个问题吗

问候
Matthias

请参见此处:ui5重用组件:

你在这里混淆了新旧方法,在这个答案中扭曲所有步骤将是非常漫长的。以下是简单的一步一步的方法:

  • 定义您的组件用法
  • 在resourceRoots中定义路径映射
  • 定义目标类型组件
  • 使用嵌套路由

你好,谢谢你的回答。这些步骤看起来很有说服力,我将更仔细地了解它和您提供的链接。但在我看来,我必须使用更新的UI5版本。你能告诉我需要哪个ui5版本吗。实际上,我们需要在ui5版本降至1.44的sap系统上支持我们的ui5应用程序的部署。向Matthiasfor1.44 avoide组件致意。支持率很高。复制每个应用程序中的视图控制器。或者检查图书馆是否适合此案例。顺便说一句,1.44已无法维护:任何人都不应出于财务/支持原因再使用它。
    {
      "path": "/sap/bc/ui5_ui5/sap/zdocviewer",
      "target": {
        "type": "application",
        "name": "docviewer"
      },
      "description": "my base document viewer"
    },
"components": {
  "de.dvelop.base.DvelopBaseDocViewer": {
    "lazy": true
  }
 }
    "resourceRoots": {
        "de.dvelop.base.DvelopBaseDocViewer": "/sap/bc/ui5_ui5/sap/zdocviewer"
    },

    "componentUsages": {
                    "myDoc": {
                        "name": "com.company.myDoc",
                        "settings": {},
                        "componentData": {},
                        "lazy": true
                    }}

    "resourceRoots": {
            "com.company.myDoc": "/sap/bc/ui5_ui5/sap/zdocviewer"
        },

       "targets": {
                "myDocTarget": {
                        "type": "Component",
                        "usage": "myDoc"
                }

    .getRouter()
                    .navTo("myDocRoute", {
                        id: oBindingContext.getProperty("CategoryID")
                    }, {
                        products: {
                            route: "list",
                            parameters: {

                            }
                        }
                    });