2

我知道您可以通过以下方式获得单个组件:

sap.ui.component("ComponentID");

但是还有一种方法可以列出当前窗口上下文中的所有组件吗?

谢谢克里斯

4

2 回答 2

1

sap.ui.component(string)代表sap.ui.getCore().getComponent(). 有了它,您可以通过 id 查询特定组件。

那里有sap.ui.core.Core一个组件注册表。但它被标记为私有,甚至有一个 TODO 来摆脱它。所以我建议不要直接访问它。

于 2016-05-17T08:38:21.263 回答
0

您可以通过Component.registry获取可用的组件。

> sap.ui.core.Component.registry.all()
{component-name: fnClass}

// You can use Object.keys to get the names
> Object.keys(sap.ui.core.Component.registry.all())
['component-name']

然后您可以通过Core.getComponentComponent.getComponeny.registry.get使用此名称来获取实际组件(如果文档中有十几个其他选项,我什至不会感到惊讶)。

> sap.ui.getCore().getComponent("component-name") // pre 1.95
> sap.ui.core.Component.get("component-name") // post 1.95
fnClass {_oMetadataProxy: UIComponentMetadata, _oManifest: constructor, _mManifestModels: {…}, _mServices: {…}, getMetadata: ƒ, …}
于 2021-09-20T08:17:58.037 回答