当我点击按钮时,我想订阅一个事件
EventBus.subscribe("sChannelFoo", "sIdBar", function(){
alert("FOOBAR!");
});
我在整个代码中订阅了“sChannelFoo”和 sIdBar”。有什么巧妙的解决方案可以确保我仅使用此按钮订阅此事件一次,即使我多次单击按钮?
如果我有 1000 个其他按钮,我希望它们也能够订阅“sChannelFoo”和“sIdBar”一次。其他 1000 个按钮可能具有相同的功能或不同的功能。
最佳答案
您可以在 Button 控件上使用方法 attachEventOnce
:https://openui5.hana.ondemand.com/docs/api/symbols/sap.ui.base.EventProvider.html#attachEventOnce
通过注册的处理函数,您可以调用事件总线的订阅:
oButton.attachEventOnce('press', function() {
EventBus.subscribe("sChannelFoo", "sIdBar", function() {
alert(FOOBAR!");
});
}
关于javascript - SAPUI5事件总线: Prevent stacking the same subsciptions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28299707/