2017-09-21 37 views
2

我們目前正在構建一組應用程序,其中有很多重用。manifest.json文件中的組件重用

目前我們通過使用 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

這裏是嵌套組件的工作示例:https://embed.plnkr.co/e7KS48/

描述符屬性componentUsages可用since 1.47.0。一旦定義,UI5負責解決組件及其擁有ComponentContainer的模塊路徑before rendering。需要

的ComponentContainer因爲一個組件不能被放置在到UI無容器。在我的示例中,容器是在我的Home.view.xml中用各自的usage屬性聲明性定義的。

+0

我的客戶只有1.44,所以我們不能使用它,但還是良好的知識。基本上我們正在使用單獨的應用程序。所以我需要使用Jquery來註冊模塊路徑?我想我應該能夠根據開發指南將它作爲依賴項添加到manifest.json文件中。請參閱:components:SAPUI5核心應加載以用於組件的組件的ID(名稱空間)。如果您的應用程序需要組件的最低版本,請指定minVersion以供參考。指定lazy以指示組件應該被延遲加載。 –

+0

如果升級UI5版本是出了問題的,這裏是應用W/1.44版(使用SplitContainer的,而不是FCL):[https://embed.plnkr.co/DhcqvWEsyx1UMt3MoF00/](https://embed.plnkr .CO/DhcqvWEsyx1UMt3MoF00 /)。不知道你是否必須在描述符中註冊組件,因爲它沒有它。我正在* Home.controller.js *中創建子組件。在'name:'中,你可以使用你的一個註冊模塊名(用''jQuery.sap.registerModulePath'](https://sapui5.hana.ondemand.com/1.44)定義''demo.childComp' 22 /文檔/ API /符號/ jQuery.sap.html#.registerModulePath))。 – boghyon

+0

真棒,它的工作!我很想擺脫jquery.sap.registerModulePath,但我想我不能擁有一切。 –