【问题标题】:Display popup before detail change在详细信息更改之前显示弹出窗口
【发布时间】:2015-09-20 19:49:11
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 能否提供代码sn-ps?
  • 您是在使用 App.to 的 Routing 还是导航?
  • 我在这里使用 MyRouter 路由:link

标签: routing sapui5 sap-fiori


【解决方案1】:

您需要满足以下条件:

1.捕捉变化

在按钮上的更改/活动时,您需要在 app 级别设置标志(例如 dataChanged),以便您知道用户已在视图中编辑了某些内容。 对于button,您可以使用press 事件进行捕获。 // tap is deprecated 对于列表,请使用selectionChange 事件。

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 是 处理它的最佳位置。

【讨论】:

    猜你喜欢
    • 2014-06-19
    • 2014-02-04
    • 1970-01-01
    • 2018-03-11
    • 1970-01-01
    • 2017-12-09
    • 2017-05-16
    • 2012-11-26
    • 2013-03-09
    相关资源
    最近更新 更多