如何在xml视图中重用组件

时间:2016-11-07 12:41:09

标签: sapui5

开发人员指南声明“组件是SAPUI5应用程序中使用的独立且可重用的部件”。但它没有举例说明如何在另一个组件中重用一个组件。

具体来说,我有一个组件,我想在不同的应用程序中重用。该组件具有支持OData服务和实现UI的视图,以及用于封装功能的控制器。我在应用程序中实例化组件(当然它们本身就是组件)没有问题,但我仍然坚持如何在应用程序的xml定义中包含组件的视图。开发人员指南提到ComponentContainer作为包装控件,但我没有找到关于如何使用它的示例。

请注意,我确实知道如何重用片段或视图,但我的情况似乎有所不同,因为我的视图与组件的OData-service(数据绑定)紧密绑定。

任何指向示例代码的指针都非常适合。感谢。

3 个答案:

答案 0 :(得分:0)

正如文档所说,您需要一个ComponentContainer来包装要加载的组件。使用该组件的应用程序取决于它。

所以要做的第一件事就是通过清单将您的组件注册到应用程序:

{
  ...
  "sap.ui5": {
    "dependencies": {
      "components": {
        "your.component.name": {
            "minVersion": "1.0.3"
        }
      }
    }
  }
...
}

之后,您可以在XMLView中编写一个核心:ComponentContainer标记(核心:用于命名空间sap.ui.core)。 ComponentContainer控件使您可以通过属性组件和名称提供所选组件。这是指向ComponentContainer

的API的链接
<core:ComponentContainer
    name="your.component.name"
    height="auto"
    component="your.component.name">
</core:ComponentContainer>

答案 1 :(得分:0)

使用SAPUI5 1.50+引入了一些新功能,允许您执行以下操作(使用在manifest.json中声明):

<core:ComponentContainer
    id="compOld"
    name="nabi.demo.comp.reuse.northwind.customer.selectionBtn"
    async="true"
    componentCreated="onComponentCreated"/>

<core:ComponentContainer
    id="compNew1"
    usage="simpleCustomerSelectionBtn1"
    async="true"
    componentCreated="onComponentCreated"/>

<core:ComponentContainer
    id="compNew2"
    usage="simpleCustomerSelectionBtn2"
    async="true"
    componentCreated="onComponentCreated"/>

详见此处:Implementing Re-use Components in SAPUI5 libraries and consuming them in SAPUI5 apps

答案 2 :(得分:0)

在createComponent部分的SAPUi5文档中进行介绍,其中介绍了如何在manifest.json中定义组件用法:

https://sapui5.hana.ondemand.com/#/api/sap.ui.core.Component

或更好地看一下文档“嵌套组件”,并阅读“声明性用法”一章。它说明了如何在XML视图中集成组件。

另一个有用的SAP Blog是https://answers.sap.com/questions/327789/multiple-components-routing-inside-a-child-compone.html。它解释了嵌套组件的体系结构以及从父组件到子组件的路由如何工作。