SAPUI5 事件总线:防止堆叠相同的订阅
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!");
});
}
相关文章:
- 分派点击事件并保留击键修饰符
- 模糊事件的Javascript测试
- keyup事件处理程序更改焦点不适用于快速键入
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 如何使Javascript动态html表及其上的事件
- 使用类从一个标记中双击事件
- 如何在未直接触发的情况下停止事件
- 如何在elfinder插件(一个文件管理器插件)上获得上传前事件
- 对iPad上的点击事件反应缓慢
- 事件和状态
- Fancybox是否将Click事件静音
- 主干-不管怎样,检查事件以前是否绑定过
- SAPUI5 事件总线:防止堆叠相同的订阅
- 连接总线男孩 on('file') 事件未触发
- 角度模块中的全局通信:事件总线或调解器模式/服务
- 杀戮观点,全球事件总线. 骨干
- Vertx事件总线访问_denied
- 独特的主干事件总线,也可以共享全局事件
- Javascript事件总线架构
- Vue.js全局事件总线