我知道您可以通过以下方式获得单个组件:
sap.ui.component("ComponentID");
但是还有一种方法可以列出当前窗口上下文中的所有组件吗?
谢谢克里斯
我知道您可以通过以下方式获得单个组件:
sap.ui.component("ComponentID");
但是还有一种方法可以列出当前窗口上下文中的所有组件吗?
谢谢克里斯
sap.ui.component(string)
代表sap.ui.getCore().getComponent()
. 有了它,您可以通过 id 查询特定组件。
那里有sap.ui.core.Core
一个组件注册表。但它被标记为私有,甚至有一个 TODO 来摆脱它。所以我建议不要直接访问它。
您可以通过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.getComponent、Component.get或Componeny.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: ƒ, …}