处理UI5/Fiori屏幕上的默认后退按钮

2020-09-13 02:47发布

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

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


您好,我正在使用ui5/fiori应用,当用户单击默认的后退按钮时,我试图显示一个弹出窗口(请参见附件)。 弹出窗口将有两个选项"继续"和"取消"。 如果用户单击"继续"按钮,那么我想导航到上一页;否则,如果单击"取消"按钮,那么我想保留在同一页面上。 我尝试了下面的代码,我能够看到弹出窗口(持续一秒钟),但是弹出窗口不会等到用户单击按钮。 它会立即关闭,并导航到上一页。

 sap.ui.getCore()。byId(" backBtn")。attachPress(function(){
debugger;
var bCompact; = !! this.getView()。$()。closest( " .sapUiSizeCompact")。length; MessageBox.warning( "未保存的更改丢失了,您要继续吗?。",
{ 操作:[" Continue",sap.m.MessageBox.Action.CANCEL],
styleClass:bCompact吗? " sapUiSizeCompact":"", onClose:function(sAction){ MessageToast.show("已选择操作:" + sAction); } } );

(54.2 kB)

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

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


您好,我正在使用ui5/fiori应用,当用户单击默认的后退按钮时,我试图显示一个弹出窗口(请参见附件)。 弹出窗口将有两个选项"继续"和"取消"。 如果用户单击"继续"按钮,那么我想导航到上一页;否则,如果单击"取消"按钮,那么我想保留在同一页面上。 我尝试了下面的代码,我能够看到弹出窗口(持续一秒钟),但是弹出窗口不会等到用户单击按钮。 它会立即关闭,并导航到上一页。

 sap.ui.getCore()。byId(" backBtn")。attachPress(function(){
debugger;
var bCompact; = !! this.getView()。$()。closest( " .sapUiSizeCompact")。length; MessageBox.warning( "未保存的更改丢失了,您要继续吗?。",
{ 操作:[" Continue",sap.m.MessageBox.Action.CANCEL],
styleClass:bCompact吗? " sapUiSizeCompact":"", onClose:function(sAction){ MessageToast.show("已选择操作:" + sAction); } } );

(54.2 kB)
付费偷看设置
发送
2条回答
SAP浪
1楼-- · 2020-09-13 03:39

嗨,这是您可以参考的实现。 请记住,您需要进行调整,例如用实际的本地路由替换" HomeRoute",用正确的i18n转换替换原始字符串,等等。

Home.controller.js

 sap.ui.define([
 " sap/ui/core/mvc/Controller",
 " sap/ui/core/routing/History",
 " sap/m/MessageBox"
 ],函数(控制器,历史记录,消息框){
 "使用严格";


 return Controller.extend(" it.designfuture.TestUI5Version.controller.Home",{

 onBackPress:function(oEvent){
 var bCompact = !! this.getView()。$()。closest("。sapUiSizeCompact")。length;
 MessageBox.warning(
 "您真的要离开此页面吗?",{
 动作:[MessageBox.Action.OK,MessageBox.Action.CANCEL],
 styleClass:bCompact?  " sapUiSizeCompact":"",
 onClose:function(sAction){
 if(sAction === MessageBox.Action.OK){
//实现后退导航
 var oHistory = History.getInstance();
 var sPreviousHash = oHistory.getPreviousHash();
 如果(sPreviousHash!==未定义){
//我们有一个上一个哈希,因此浏览器知道如何返回页面
 window.history.go(-1);
 }其他{
//我们通过深层链接到达了这里,所以我们不知道该如何返回
//只需返回您的主页或您想要的任何路线即可!
//用您当前的路线替换HomeRoute;)
 var oRouter = sap.ui.core.UIComponent.getRouterFor(this);
 oRouter.navTo(" HomeRoute",{},true);
 }
 }其他{
//不执行任何操作,只需关闭对话框即可;)
 }
 }
 }
 );
 }


 });
 });
 

该视图只是一个用于处理单击事件的按钮,没有什么复杂的,只是我需要在此示例中向您展示的内容。

 
 
 <页面>
 
 <内容>
 
SAP小黑
2楼-- · 2020-09-13 03:32

正如我在先前的评论中所说的

注意:此功能仅在事件源支持阻止事件的默认操作时才有效。  

如果我明天有时间,我将尝试创建一个实时示例进行测试

一周热门 更多>