问题描述
如何在 UI5 父应用程序中加载子组件?。 我正在尝试实现一个 Fiori Launchpad,它可以将其他应用作为子组件加载。
到目前为止,我一直指的是 https://stackoverflow.com/a/46358895/5846045
但是实现这一点需要在清单中明确定义子组件。 谢谢!
解决方法
要将一个组件嵌入到另一个组件中,您需要使用 ComponentContainer
- 如果您的应用“先验”不了解子组件,您可以将其与 URL 和其他属性一起使用。例如,如果您的“父”应用在运行时从数据服务获取有关子应用的信息。
https://sapui5.hana.ondemand.com/#/api/sap.ui.core.ComponentContainer
您可以以任何可以使用其他控件的方式使用 ComponentContainer
。您可以在 XML 视图中使用它或在控制器中实例化它,然后将其添加到页面的内容中(仅作为示例)
PS:只要确保子组件的 URL 来自同一主机。或者,如果它来自不同的主机,它允许使用 ajax 请求(跨域策略和东西)进行检索
更新 2021-01-04: 这是 JS Fiddle 中的一个简单粗暴的例子:
https://jsfiddle.net/iPirat/t30sr8zw/
我在此处嵌入了 sapui5.hana.ondemand.com
中的 Button-Sample-Component。
由于 CORS 政策,它只会在您在浏览器中禁用网络安全example how to do so in chrome