Как использовать метод 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
    }
);

Если у вас есть еще вопросы по этому поводу, дайте мне знать, поэтому я буду расширять его.

Другие вопросы по тегам