从 NavContainer 调用“to”后获取下一页上传递的数据

San*_* Hs 5 sapui5

我正在使用 SAPUI5 构建类似 Fiori 的应用程序。我已经成功构建了母版页面,在单击项目时,我传递了上下文并导航到详细信息页面。

母版页的上下文路径类似于/SUPPLIER("NAME"). in的函数App.controoler.js如下:

handleListItemPress: function(evt) {
  var context = evt.getSource().getBindingContext();
  this.myNavContainer.to("Detail", context);
  // ...
},
Run Code Online (Sandbox Code Playgroud)

但我想知道如何context在“详细信息”页面中访问它。我需要这个,因为我需要使用它$expand来构建 URL 并将项目绑定到表。

Tim*_*ach 1

UI5文档中有一个关于如何使用框架自动调用的函数EventDelegate来处理这个问题的示例。onBeforeShow我根据您的用例进行了调整:

this.myNavContainer.to("Detail", context); // trigger navigation and hand over a data object
Run Code Online (Sandbox Code Playgroud)
// and where the detail page is implemented:
myDetailPage.addEventDelegate({
  onBeforeShow: function(evt) {
    var context = evt.data.context;
  }
});
Run Code Online (Sandbox Code Playgroud)

evt.data对象包含您放入的所有数据。您可以将其记录到控制台以查看对象的结构。to(<pageId>, <data>)evt