Routing 详细信息更改前显示弹出窗口

Routing 详细信息更改前显示弹出窗口,routing,sapui5,sap-fiori,Routing,Sapui5,Sap Fiori,我正在使用WEB IDE中的主细节模板(包括路由等)开发类似SAP FIORI的应用程序。在“细节”视图中有一些分段按钮,用户使用这些按钮来评估产品质量 我需要的是在用户导航到其他详细信息(从master2列表中选择其他项目,或返回master1视图)之前检查是否选择了(更改)任何按钮。如果是,则应显示弹出窗口以确认退出,而不保存结果 我尝试在“master2”视图中使用“onSelect”功能,但: 我现在不知道如何从当前详细信息中读取值(检查是否有任何更改(选中)) 如何防止在master2

我正在使用WEB IDE中的主细节模板(包括路由等)开发类似SAP FIORI的应用程序。在“细节”视图中有一些分段按钮,用户使用这些按钮来评估产品质量

我需要的是在用户导航到其他详细信息(从master2列表中选择其他项目,或返回master1视图)之前检查是否选择了(更改)任何按钮。如果是,则应显示弹出窗口以确认退出,而不保存结果

我尝试在“master2”视图中使用“onSelect”功能,但:

  • 我现在不知道如何从当前详细信息中读取值(检查是否有任何更改(选中))
  • 如何防止在master2列表中选择“新”元素

  • 我应该在哪个视图中使用哪个事件?

    您需要执行以下操作:

    1.捕捉变化

    在按钮上的更改/活动中,您需要将标志(例如
    dataChanged
    )设置为app级别,以便您知道用户已跨视图编辑了某些内容。 对于
    按钮
    ,可以使用事件捕获<代码>//tap不推荐使用 对于列表,请使用事件

    2。详细处理布线,也可以在master2视图中处理布线

    详细地说,master2页面使用了
    onRouteMatched
    方法。在路由之前,您知道标志和路由名称。你可以选择你想要的行动。 例如:

    onRouteMatched : function(oEvent) {     
        var sName = oEvent.getParameter("name");
    //Open popup for confirmation based on sName and dataChanged values.. Better make this as reusable so that you can reuse.
    }
    
    请注意,正如您已经提到的,有两种可能性。 用户导航到不同的主视图或导航中的新项目 主列表2。这两种情况都必须处理onRouteMatched 最好的处理方法


    你能提供代码片段吗?你是使用App.to使用路由还是导航?我使用MyRouter的路由,如下所示: