SAP UI5重用组件
我正在编写一个应该在多个其他应用程序中使用的UI5匿名组件。目标应用程序位于SAPUI5 ABAP存储库的包中。应包含在目标中的组件位于同一SAPUI5 ABAP存储库中的不同包中。SAP UI5重用组件
如何包含此组件?我从文档中以如下方式添加了对目标manifest.json的更改:
"dependencies": {
"minUI5Version": "1.30.0",
"libs": { "sap.m": {}, "sap.ui.core": {}, "sap.ui.layout": {} },
"components": { "cls.dva": {} }
},
但是组件是如何实际找到的?这里我使用了SICF节点路径。我必须将“.Component”添加到路径吗?是否有另一个地方,我必须在目标应用程序中引用依赖组件?
另一个问题是如何以及在哪里实例化组件?目标Component.js的init()函数是否正确?还有一些参数需要通过才能正确使用。最终,组件及其数据应该在应用程序范围内可用。
谢谢
基督教
另一个基督教在这里... :-)
关于你的问题,你需要保持两两件事:
- 的ID你的匿名组件
- SAP ABAP知识库中的无脸组件的名称
应用程序的依赖项部分是放置要加载的组件的正确位置。
因此,无面向组件所在的SAP ABAP存储库的哪个包并不重要。重要的是身份证。
让我们看看到你露脸组件的清单:
{
"_version": "1.4.0",
"sap.app": {
"id": "cls.dva",
"type": "component",
"i18n": "i18n/i18n.properties",
"applicationVersion": {
"version": "1.0.0"
},
"resources": "resources.json",
...
},
"sap.ui": {
...
}
...
}
正如你可以看到这个组件的ID等于ID您键入的是应使用的应用程序依赖关系部分的零件。这就是你需要照顾的一切。
现在,如果你想在你的Component.js的init函数中加载和访问你的依赖组件(这是一个很好的地方,如果它应该在整个应用程序中可用),你可以执行以下操作需要你第一次部署期间,给了它重用组件,如z_cls_dva)的名字:您能够提供参数重用组件
init: function() {
sap.ui.component({
manifestUrl: "/sap/bc/ui5_ui5/sap/z_cls_dva/manifest.json",
async: true,
manifestFirst: true,
componentData: { componentSetting: true }
}).then(function(oComponent) {
this._clsDvaReuse = oComponent
}.bind(this)).catch(function(sError) {
jQuery.sap.log.error(sError, "-", this.getManifestEntry("sap.app").id)
}.bind(this))
}
经由componentData。在那里你可以拨打this.getComponentData()
来访问它们。您也可以使用设置属性将配置提供给组件。阅读sap.ui.component文档以获取更多详细信息。
注意:自SAPUI5 1.48起,加载重用组件的建议已更改。见the corresponding article in the sdk documentation。