云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

轻量服务器_银河护卫队百度云_排行榜

小七 141 0

轻量服务器_银河护卫队百度云_排行榜

嗨,SAPUI5开发人员,

在SAPUI5应用程序中,您可能每个视图都有一个控制器。在每个控制器中都有函数。

一个好的开发人员不希望编写不必要的代码并尽可能多地重用代码,淘客推广联盟,因此从其他控制器调用函数是很有用的。

例如,这在使用嵌套视图时可能很有用。例如,您可以有一个父视图,它存在于两个子视图中。在您的子视图中,您希望使用父视图中的函数。

但是您希望在控制器之间进行通信可能还有很多其他原因。

因此SAPUI5具有事件总线。EventBus有两个功能来设置控制器之间的通信:

此功能将为特定事件定义事件侦听器。

此功能将触发特定事件

发布功能可从项目中的任何地方为不同的事件调用。如果为触发的事件定义了subscribe函数,物联网工程是什么,那么它将执行事件处理程序。

在我的示例中,我使用的"Main"视图包含一个标签、一个按钮和两个子视图。

在我的"Main"视图的控制器中,我有一个显示消息框的功能:

这将导致以下结果:

现在在子视图中我还添加了一个标签和一个按钮。

子视图1:

子视图2:

现在我想使用我的"主"视图的功能来显示子视图中的信息消息。因此,我编辑"Main"视图的控制器。

在"onInit"中,我定义了两个具有subscribe功能的事件侦听器,一个用于"SubView1",另一个用于"SubView2"。两者都使用相同的事件处理程序。它们还需要名称和事件。我使用将触发事件的视图的名称和事件的名称。

事件处理程序与"Main"视图中按钮的"Press"事件使用的函数相同。因此,我必须更改此函数以使其适用于这两种情况。

我已为子视图上的按钮定义了事件侦听器。但是我仍然需要触发这些事件。

要触发这些事件,我在按钮按下功能中使用了EventBus的发布功能。

子视图1的控制器:

子视图2的控制器:

我需要使用与订阅功能中相同的名称和事件来触发事件。只有当这些参数匹配时,淘大客,它才会调用事件处理程序。此外,我还添加了一些文本参数。

这将给出以下结果:

使用"主"视图上的按钮

按子视图1上的按钮

按子视图2上的按钮

重要的是要知道,当你的应用程序在Fiori启动板中使用时,使用eventbus的取消订阅功能!否则,在执行以下操作后,它将停止正常工作:

最后一步将再次向事件巴士。这个将导致错误。

在onAfter函数中添加unsubscribe,例如:

onExit:函数(){

var事件总线=sap.ui.getCore().getEventBus();

eventBus.取消订阅("子视图1〃,"显示弹出窗口",此.onShowPopup,智慧农业物联网系统,这个);

}

希望这是有用的。

你可以在Github上找到完整的项目:

https://github.com/lemaiwo/SAPUI5Eventing

试用结果:

谨致问候,

Wouter

关于UI5强大但(不合理)被低估的功能的伟大博客

有用的博客感谢分享

好的,帮助澄清EventBus的概念

我喜欢它!谢谢分享。:)

太好了,正在寻找一个简短的,简单的解释这个概念。

嗨,沃特,

谢谢分享。好东西!问:我计划在导航过程中使用这个来处理参数。下面的场景是否有效?我在view1中标记一些条目,取出值,将它们发布到EventBus,导航到view2,遍历onInit(),创建订阅并希望使用view2中的值。我对此有点怀疑,因为view2在值发布到EventBus时没有初始化。在这个场景中,它们是否也在排队并触发事件,或者它们是否会丢失并且有效负载不会将其发送到view2?

非常感谢。

致以最诚挚的问候

WPdat

您好,

我不会用这个来将参数从一个视图发送到另一个视图。因此,大数据分析技术,我将使用路由参数。如果您要向视图发送完整的json对象,我建议您使用临时json模型来存储json对象。

非常感谢,

非常感谢。在我尝试将navTo中的router参数与sap.m.routing一起使用之后,我发现移交的对象没有被传输。它没有出现在我在接收端捕获的路由事件的参数中。奇怪。到目前为止,我发现的所有使用重写路由器的示例都意味着自己的路由器类实现。我想我会解决或多或少的全局JSON模型的问题,这些模型在导航过程中明显不受上下文变化的影响嵌套视图的情况?

我需要将数据从一个视图传递到另一个没有嵌套的视图。视图2是从视图1调用的,只需按下一个按钮,这两个视图没有嵌套。

你能帮我吗?

问候,

Shivam.

要将数据从一个视图传递到另一个视图,应使用动态路由。如果需要传递大量数据,可以在组件中为共享数据创建JSON模型。请先填写此共享模型,然后再浏览并在第二个视图中阅读。