在SAPUI5中获取另一个组件上下文

在SAPUI5中获取另一个组件上下文,sapui5,Sapui5,我是SAPUI5的新手 我有两个组件/文件夹,其中包含名为“视图”和“tableview”的视图和控制器。是否可以在“tableview”中获取“view”上下文?如果我理解正确,您正在尝试从子控制器访问父控制器。以下是noob向专家提出的一些建议;) 最简单的方法是只使用一个全局变量来提供对所需控制器的引用,这是不推荐的 为父视图提供一个id并在其控制器上调用一个方法,如下所示: sap.ui.getCore().byId(“parentViewId”).getController().met

我是SAPUI5的新手


我有两个组件/文件夹,其中包含名为“视图”和“tableview”的视图和控制器。是否可以在“tableview”中获取“view”上下文?

如果我理解正确,您正在尝试从子控制器访问父控制器。以下是noob向专家提出的一些建议;)

  • 最简单的方法是只使用一个全局变量来提供对所需控制器的引用,这是不推荐的

  • 为父视图提供一个id并在其控制器上调用一个方法,如下所示:

    sap.ui.getCore().byId(“parentViewId”).getController().method()

  • 您可以直接调用控制器方法,如下所示:

    sap.ui.controller(“namespace.Controllername”).method()

  • 我强烈建议使用更解耦的方式在控制器(或一般的应用程序组件)之间进行通信。它实现了一种称为事件或消息总线的模式,imho确实可以启动;)

  • 德国劳埃德船级社
    Chris

    你所说的视图上下文是什么意思?还是MVC世界中的视图控制器?我在一个名为“视图”的文件夹中有多个views.xml和controller.js文件。同样,我在名为“tableview”的文件夹中有多个views.xml和controller.js。现在,我正在“视图”文件夹中的视图(父视图)中从“tableview”文件夹加载视图(子视图)。我想知道是否有任何方式让孩子访问父母上下文。谢谢Chris。我能够使用sap.ui.controller(“namespace.Controllername”).method()。。。。。是否有可能访问父控制器的上下文或子控制器中的“this”对象?sap.ui.controller(“namespace.Controllername”)提供了您所称的父控制器上下文。如果你愿意,你也可以从中获得财产。还缺少什么?不,谢谢分享@cschuff