SAPUI5绑定事件

2020-09-27 02:06发布

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

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


你好。

我有一个sap.m.ComboBox,我将项目绑定到其中,并使用绑定事件在检索数据时显示繁忙的指示符(完成后将其隐藏)。 但是,绑定事件也会在选择ComboBox中的列表项时触发,因此我不想显示繁忙指示器。 但是除了事件函数中的ComboBox之外,我什么都不能访问。

我在XML视图中有一个sap.m.ComboBox,在其下方称为oDropDown:

 oDropDown.bindItems({
     路径:ipType,
     模板:this._oTemplate,
     事件:{
         dataRequested:function(oEvent){
             oDropDown.setBusy(true);
         },
         dataReceived:function(oEvent){
             oDropDown.setBusy(false);
         }
     }
 });
 

此代码可以正常工作,显示忙碌指示器并按预期将其隐藏。

但是,由于在组合框中进行选择时也会调用这些事件,因此我希望有一个条件(因为我想在更新列表时显示MessageToast,但在仅进行选择时不显示它 )。

我在" this"(控制器)上设置了一个变量,该变量为true/false,但是事件函数中的" this"与bindItems中的" this"不同。 (在bindItems中," this._oTemplate"使用的是我要使用的" this",但是如果我在dataRequested事件函数中使用" this",那么,如果您得到我,它就是一个不同的" this" ...

即使我使用外部函数,这也是完全相同的问题,

 oDropDown.bindItems({
     路径:ipType,
     模板:this._oTemplate,
     事件:{
         dataRequested:fnOnDataRequested,
         dataReceived:fnOnDataReceived
         }
     }
 }); 

fnOnDataRequested内部的" this"不是" this"(控制器)。

如果在绑定项目之前设置" that = this",则事件函数中的" that"是" undefined"。

希望我能使自己理解,并希望外面有人会知道这样做的方法? 在事件函数内部访问" this"(控制器)。

谢谢,
托马斯

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

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


你好。

我有一个sap.m.ComboBox,我将项目绑定到其中,并使用绑定事件在检索数据时显示繁忙的指示符(完成后将其隐藏)。 但是,绑定事件也会在选择ComboBox中的列表项时触发,因此我不想显示繁忙指示器。 但是除了事件函数中的ComboBox之外,我什么都不能访问。

我在XML视图中有一个sap.m.ComboBox,在其下方称为oDropDown:

 oDropDown.bindItems({
     路径:ipType,
     模板:this._oTemplate,
     事件:{
         dataRequested:function(oEvent){
             oDropDown.setBusy(true);
         },
         dataReceived:function(oEvent){
             oDropDown.setBusy(false);
         }
     }
 });
 

此代码可以正常工作,显示忙碌指示器并按预期将其隐藏。

但是,由于在组合框中进行选择时也会调用这些事件,因此我希望有一个条件(因为我想在更新列表时显示MessageToast,但在仅进行选择时不显示它 )。

我在" this"(控制器)上设置了一个变量,该变量为true/false,但是事件函数中的" this"与bindItems中的" this"不同。 (在bindItems中," this._oTemplate"使用的是我要使用的" this",但是如果我在dataRequested事件函数中使用" this",那么,如果您得到我,它就是一个不同的" this" ...

即使我使用外部函数,这也是完全相同的问题,

 oDropDown.bindItems({
     路径:ipType,
     模板:this._oTemplate,
     事件:{
         dataRequested:fnOnDataRequested,
         dataReceived:fnOnDataReceived
         }
     }
 }); 

fnOnDataRequested内部的" this"不是" this"(控制器)。

如果在绑定项目之前设置" that = this",则事件函数中的" that"是" undefined"。

希望我能使自己理解,并希望外面有人会知道这样做的方法? 在事件函数内部访问" this"(控制器)。

谢谢,
托马斯

付费偷看设置
发送
3条回答
派大星 ヾ
1楼 · 2020-09-27 02:19.采纳回答

托马斯,你好

PFB更新的代码:

 oDropDown.bindItems({
     路径:ipType,
     模板:this._oTemplate,
     事件:{
         dataRequested:fnOnDataRequested.bind(this),
         dataReceived:fnOnDataReceived.bind(this)
         }
     }
 }); 

完成此操作后,函数fnOnDataRequested和fnOnDataReceived将绑定到当前上下文的" this",即您的控制器,您可以访问这些函数中的所有控制器变量。

此致

Rahul

悠然的二货
2楼-- · 2020-09-27 02:20

谢谢,这解决了这个问题!

当学会了学习
3楼-- · 2020-09-27 02:19

你好,

您为什么不只对Model事件进行事件附加? 而不是在下拉菜单控件中?

此致

一周热门 更多>