如何在UI5中分离事件

2020-08-14 11:08发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好, 我正在尝试使用打开的u...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好,

我正在尝试使用打开的ui 5附加和分离事件。但是它不起作用,关于此的唯一相关文章似乎是


我在这里尝试最基本的方法:用给定的ID调用attachEvent(),在处理函数中,我只调用detachEvent()。 我的基础对象是一个全局变量,它是可见的。 我可以看到其" mEventRegistry"属性,但调用detachEvent()却无济于事。

有人可以提供一个相关的工作示例吗,因为开发人员似乎认为工作代码示例是多余的,因此人们应该找到自己的工作方式。

编辑:

 onWorkScheduleUpdated:function(eventId,settings){
     ContextUtils.get()。attachEvent(" eventId" + eventId,settings,()=> {
         ContextUtils.get()。detachEvent(" eventId" + eventId,()=> {});
     });
 },
 

非常感谢!

5条回答
spaceman01
2020-08-14 11:25

看起来像您尝试只调用一次事件处理程序。 在这种情况下,请尝试使用" attachEventOnce "。

 myControl.attachEventOnce(" someEventID",()=> {
  //在此函数之后,事件处理程序将自动分离。
 }); 

___

但是,一般而言,分离事件处理程序需要与附加处理程序时传递的处理程序完全相同的引用。 例如:

 onInit:function(){
  //...
   myRoute.attachPatternMatched(this.handleRoutePatternMatched,this);
 },

 handleRoutePatternMatched:function(event){
 //处理事件
 },

 onExit:function(){
  //...
   myRoute.detachPatternMatched(this.handleRoutePatternMatched,this); //相同的参数
 } 

从API参考:

>传递的函数和侦听器对象必须与用于事件注册的函数和侦听器对象匹配。

传递 直接将匿名函数作为参数使其无法稍后引用(用于分离)。

一周热门 更多>