manifest.json文件中的组件重用

时间:2017-09-21 12:20:14

标签: sapui5

我们目前正在构建一组应用程序,其中有大量重用。

目前我们通过使用它得到了它 jQuery.sap.registerModulePath和jQuery.sap.require。 但根据 Using and Nesting Components您应该能够在manifest.json文件中声明重用组件。

我查看了SAPUI5 Developer Guide,但无法真正发挥作用。据我所知,我需要添加以下内容:

"sap.App" :{
    "embeddedBy" : "../.."
},
"sap.ui5": {
    "componentUsages" :{
        "<string for my reuse component>" : {
            "name" : "<name of the component>"
        }
    "dependencies" :{
        "components" : {
            "<namespace of my component>"
         }}

任何人都有一个有效的例子吗?

1 个答案:

答案 0 :(得分:1)

以下是嵌套组件的工作示例:https://embed.plnkr.co/e7KS48/

描述符属性componentUsages可用since 1.47.0。一旦定义,UI5负责解析组件及其模块路径before rendering拥有的ComponentContainer。

需要ComponentContainer,因为如果没有容器,则无法将Component放入UI中。在上面的示例中,Container在 Home.view.xml 中以声明方式定义,具有相应的usage属性。

<core:ComponentContainer id="containerForChildComponent"
  autoPrefixId="true"
  settings="{id: 'childComponent'}"
  usage="reuseAnotherComponent"
  manifest="true"
  height="100%"
  async="true"
/>
"sap.ui5": {
  "componentUsages": {
    "reuseAnotherComponent": {
      "name": "anotherComponent",
      "lazy": false
    }
  },
  "resourceRoots": {
    "anotherComponent": "./component_B"
  },
  // ...
}

如您所见,resourceRoots也可以在描述符中定义,可以指向其他组件/应用程序位置。

版本低于1.47的UI5应用示例: https://embed.plnkr.co/ytXZJ9