sap.m.Dialog escapeHandler的操作方法

2020-09-15 09:28发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家您好, 存在 sap.m的...

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

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


专家您好,

存在 sap.m的新属性 .Dialog ,称为escapeHandler。 有谁知道如何使用它? 从1.44开始可用。 我们使用的是1.44.7,但无法使其正常运行。 它是一个属性,而不是事件处理程序。

 Dialog.fragment.xml部分:
 <对话框标题=" {i18n> chooseWS}" contentHeight =" 100%" contentWidth =" 100%" Stretch =" true" verticalScrolling =" false" escapeHandler =" mayTheForceBeWithMe">

 控制器:
 this._oDialog = sap.ui.xmlfragment(" xxx.xxx.xxxx.xxx.Dialog",this);  this._oDialog.setModel(this.getModel(" i18n")," i18n");
 this._oDialog.open();
 ...
 mayTheForceBeWithMe:function(oPromise){
 如果(!this.oFilterEntry || this.oFilterEntry.workspace ==""){
 oPromise.reject();  }其他{
 oPromise.resolve();
 }
 },
 ... 

未调用函数mayTheForceBeWithMe。

谢谢

6条回答
悻福寶寶
2020-09-15 10:15 .采纳回答

你好Atilla,

我检查了这个问题,发现如果对话框是在XML Fragment中创建的,那么它将无法正常工作。 好像它是在javascript控制器中创建的一样。 我检查了Dialog控制器的代码,这是代码

 if(typeof oEscapeHandler ==='function'){
//创建一个Promise,以允许应用程序开发人员挂接到'escape'事件
//并通过执行它们定义的转义处理函数来防止对话框关闭
 新window.Promise(function(resolve,reject){
 oPromiseArgument.resolve =解决;
 oPromiseArgument.reject =拒绝;


 that.currentPromise = oPromiseArgument;


 oEscapeHandler(that._getPromiseWrapper());
 })
 .then(函数(结果){
 that.close();
 })
 .catch(function(){
 jQuery.sap.log.info("禁止关闭对话框");
 });
 }其他{


 this.close();
 }


           

因此,oEscapeHandler必须是function。 我认为这可能是为什么要检查类型的错误,但是是的,让您使用它的方法是在javascript控制器中使用。

感谢和问候,

Veera

一周热门 更多>