【问题标题】:Get another components context in SAPUI5在 SAPUI5 中获取另一个组件上下文
【发布时间】:2014-09-12 11:09:34
【问题描述】:

我是 SAPUI5 的新手。

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

【问题讨论】:

  • View context 是什么意思?还是MVC世界中的View controller?
  • 我在一个名为“view”的文件夹中有多个views.xml 和controller.js 文件。同样,我在名为“tableview”的文件夹中有多个views.xml 和controller.js。现在,我正在从 'tableview' 文件夹中加载一个视图(子),并在 'view' 文件夹中的一个视图(父)中。我想知道孩子是否有任何方法可以访问父母的上下文。

标签: sapui5


【解决方案1】:

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

  1. 最简单的方法是仅使用全局变量来提供对所需控制器的引用 - 不推荐。

  2. 给你的父视图一个 id 并在它的控制器上调用一个方法,如下所示:

    sap.ui.getCore().byId("parentViewId").getController().method();

  3. 您可以像这样直接调用控制器方法:

    sap.ui.controller("namespace.Controllername").method();

  4. 我强烈建议使用sap.ui.core.EventBus 在控制器(或一般的应用程序组件)之间进行更解耦的通信方式。它实现了一种称为事件或消息总线的模式,恕我直言,真的很棒;)

总帐 克里斯

【讨论】:

  • 谢谢克里斯。我能够使用 sap.ui.controller("namespace.Controllername").method(); 调用 parentview 的方法; .....是否有可能访问父控制器的上下文或子控制器中的“this”对象?
  • sap.ui.controller("namespace.Controllername") 为您提供您所谓的父控制器上下文。如果您愿意,您也可以从中获取属性。还缺什么?
  • 没有。感谢分享@cschuff
猜你喜欢
  • 2015-05-18
  • 1970-01-01
  • 1970-01-01
  • 2022-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多