如何在SAPUI5中使用getEventBus方法

Kit*_*tty 4 events sapui5

我想了解getEventBus().有人可以提供教程或最佳示例,我们可以在何处以及如何实施getEventBus().

Tim*_*ach 19

在这里提供了一个回答另一个问题的例子.

简而言之,您可以调用sap.ui.getCore().getEventBus()以访问EventBus实例.因为它来自核心,所有视图/控制器都是一样的.EventBus为您提供发布/订阅功能.例如,这使您可以在Controller A中发布事件并通知订阅的控制器B.一个简单的例子主要来自我的其他答案:

订阅EventBus:

var eventBus = sap.ui.getCore().getEventBus();
eventBus.subscribe("channel1", "event1", this.handleEvent1, this);
Run Code Online (Sandbox Code Playgroud)

当然,您可以根据需要为频道和活动命名.第三个参数表示将在已发布事件的情况下调用的函数.最后一个参数是范围,"this"将指向给定的函数.

你的handleEvent1功能可能如下所示:

handleEvent1 : function(channel, event, data) {
    var customData = data.customData
}
Run Code Online (Sandbox Code Playgroud)

将事件发布到EventBus:

var customData = {}  // anything you eventually want to pass
var eventBus = sap.ui.getCore().getEventBus();

eventBus.publish("channel1", "event1", 
    {
        customData: customData
    }
);
Run Code Online (Sandbox Code Playgroud)

如果您对此有更多疑问,请告诉我,我会延长它.