SAPUI5 EventBus:防止堆叠相同的订阅

时间:2015-02-03 13:06:23

标签: javascript event-bus sapui5

当我点击按钮时,我想订阅一个活动

EventBus.subscribe("sChannelFoo", "sIdBar", function(){
alert("FOOBAR!");
});

我订阅" sChannelFoo"和sIdBar"在我的代码中。什么是一个简洁的解决方案,以确保我只使用此按钮订阅此事件一次,即使我多次单击我的按钮?

如果我有1000个其他按钮,我希望他们也能够正好订阅一次" sChannelFoo"和" sIdBar"。其他1000个按钮可能具有相同的功能或不同的功能。

1 个答案:

答案 0 :(得分:2)

您可以在Button控件上使用方法attachEventOncehttps://openui5.hana.ondemand.com/docs/api/symbols/sap.ui.base.EventProvider.html#attachEventOnce

使用已注册的处理程序函数,您可以调用事件总线的订阅:

oButton.attachEventOnce('press', function() {
    EventBus.subscribe("sChannelFoo", "sIdBar", function() {
        alert(FOOBAR!");
     });
}