我想了解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)
如果您对此有更多疑问,请告诉我,我会延长它.