Как использовать метод getEventBus в SAPUI5
Я пытаюсь понять getEventBus()
, Может кто-нибудь предоставить учебник или лучший пример, где и как мы можем реализовать getEventBus()
,
1 ответ
Я привел пример, чтобы ответить на другой вопрос здесь.
Короче говоря, вы можете позвонить sap.ui.getCore().getEventBus()
чтобы получить доступ к экземпляру EventBus. Поскольку это происходит от ядра, оно одинаково для всех ваших представлений / контроллеров. EventBus предоставляет вам функциональность публикации / подписки. Это, например, позволяет вам опубликовать событие в Контроллере 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
}
);
Если у вас есть еще вопросы по этому поводу, дайте мне знать, поэтому я буду расширять его.