点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨,
我正在使用Component方法构建应用程序,这很棒。 但是现在我面临的问题是,我无法从组件内部访问父(或任何其他)组件。 我知道核心上有一个getComponent方法,但是
sap.ui.getCore()。getComponent(" myComponentId")
什么都没给我。
sap.ui.getCore()。getRootComponent()
也不返回任何内容。
这是我用来创建组件的代码:
新的sap.ui.core.ComponentContainer(" componentId",{ 高度:" 100%", 宽度:" 100%", 名称:" com.component.my.nice", broadcastModel:正确 });
整个事情都在sap.m.Shell + sap.m.SplitApp中运行。 在我的index.html中,将SplitApp创建为Shell的根组件,如下所示:
new sap.m.Shell(" Shell",{ 应用:新的sap.ui.core.ComponentContainer(" RootContainer",{ 高度:" 100%", 宽度:" 100%", 名称:" com.component.root", displayBlock:" true", 模式:" HideMode" }) })。placeAt(" content");
我在做什么错,为什么我不能查询组件? 如何访问常规组件注册表?
欢呼
基督徒
嗨,基督徒
为了提供组件的ID,您必须在组件实例化时对其进行设置,例如 在以下代码段中
var oComp = sap.ui.getCore()。createComponent({
名称:" my.component.class",
id:" myComp",
高度:" 100%"
});
var oComponentContainer = new sap.ui.core.ComponentContainer({
组件:oComp
});
oComponentContainer.placeAt(" content");
然后您可以稍后通过
访问该组件sap.ui.getCore()。getComponent(" myComp")
非常感谢Leonhard。 它现在适用于getComponent。 getRootComponent仍返回未定义。 知道如何使它工作吗?
为避免此问题,我将此方法添加到了所有控制器中:
您通常不需要将其放入控制器中。 通常,您应该可以使用:
this.getOwnerComponent()到组件。
Alex
嗨,克里斯蒂安
您尝试过sap.ui.getCore()。byId('componentId')吗?
-D
我使用下面的代码片段访问根组件
使用此方法,我们也可以访问根组件模型和路由器。 我确实在子应用基本控制器文件中创建了辅助函数,以便可以在整个应用中重用它。
一周热门 更多>