如何在SAPUI5中使用getEventBus方法

时间:2014-08-19 12:05:30

标签: events sapui5

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

1 个答案:

答案 0 :(得分:18)

我提供了一个示例来回答另一个问题here

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

订阅EventBus:

var eventBus = sap.ui.getCore().getEventBus();
eventBus.subscribe("channel1", "event1", this.handleEvent1, this);

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

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

handleEvent1 : function(channel, event, data) {
    var customData = data.customData
}

将事件发布到EventBus:

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

eventBus.publish("channel1", "event1", 
    {
        customData: customData
    }
);

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