我想了解getEventBus()
。有人可以提供教程或最佳示例我们在何处以及如何实施getEventBus()
。
答案 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
}
);
如果您对此有更多疑问,请告诉我,我会延长它。