如何在UI5中分离事件

2020-08-14 11:08发布

         点击此处--->   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,()=> {});
     });
 },
 

非常感谢!

         点击此处--->   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条回答
我是小鹏鹏啊
1楼 · 2020-08-14 11:48.采纳回答

我不确定100%,但是我认为您的代码段无效,因为第二个参数是另一个函数。 根据文档,您需要将相同的fnFunction传递给

也许您会更感兴趣" attachEventOnce"。

huskylover
2楼-- · 2020-08-14 11:32

您好,能否请您提供一段代码来进行附加和分离调用(我 假设您最初并不是从XML视图附加它们)。 可能没有将事件侦听器传递给分离调用,但是只有查看该代码才能获得更好的见识。

spaceman01
3楼-- · 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参考:

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

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

nice_wp
4楼-- · 2020-08-14 11:31

我用一个简短的示例编辑了帖子

樱桃小丸子0093
5楼-- · 2020-08-14 11:33

在这种情况下,我将在对钩子的引用中使用attachEvent和detachEvent。

 onWorkScheduleUpdated:function(eventId,settings){

     函数hook(){
      //做一些东西

       ContextUtils.get()。detachEvent(" eventId" + eventId,hook);
     }
     ContextUtils.get()。attachEvent(" eventId" + eventId,settings,hook);
 },

应该可以。

一周热门 更多>