SAPUI5 EventBus:防止堆叠相同的订阅
SAPUI5 EventBus: Prevent stacking the same subsciptions
当我点击一个按钮时,我想订阅一个事件
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!");
});
}
当我点击一个按钮时,我想订阅一个事件
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!");
});
}