Sapui5 调用“后在下一页获取传递的数据”;至;来自NavContainer

Sapui5 调用“后在下一页获取传递的数据”;至;来自NavContainer,sapui5,Sapui5,我正在使用SAPUI5构建一个类似Fiori的应用程序。我已经成功构建了母版页,在单击项时,我传递上下文并导航到详细信息页 母版页的上下文路径类似于/SUPPLIER(“NAME”)。App.controlooler.js中的函数如下: handleListTempress:功能(evt){ var context=evt.getSource().getBindingContext(); this.myNavContainer.to(“细节”,上下文); // ... }, 但我想知道如何访问

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

母版页的上下文路径类似于
/SUPPLIER(“NAME”)
App.controlooler.js
中的函数如下:

handleListTempress:功能(evt){
var context=evt.getSource().getBindingContext();
this.myNavContainer.to(“细节”,上下文);
// ...
},

但我想知道如何访问详细信息页面中的
上下文。我之所以需要它,是因为我需要使用
$expand
来构建URL并将项目绑定到表。

中有一个示例,说明如何使用
事件委托处理此问题,该委托用于框架自动调用的
onBeforeShow
函数。我根据您的用例对其进行了调整:

this.myNavContainer.to(“细节”,上下文);//触发导航并移交数据对象
//详细信息页面的实现位置:
myDetailPage.addEventDelegate({
onBeforeShow:功能(evt){
var context=evt.data.context;
}
});
evt.data
对象包含您放入(,)
的所有数据。您可以将其登录到控制台以查看
evt
对象的结构。

请参阅SAP UI5演示套件中的“购物车”示例

通常,在“Component.js”中,应针对不同的视图配置路由

在意见中,必须听取路线的意见。请看下面

在Component.js中:

routes: [
      { pattern: "cart",
        name: "cart",
    view: "Cart",
    targetAggregation: "masterPages"
      }
        ]
在Cart.controller.js中,必须监听路由。在本例中,cart是一个细节

    onInit : function () {
         this._router = sap.ui.core.UIComponent.getRouterFor(this);
         this._router.attachRoutePatternMatched(this._routePatternMatched, this);
   },

    _routePatternMatched : function(oEvent) {
    if (oEvent.getParameter("name") === "cart") {
        //set selection of list back
        var oEntryList = this.getView().byId("entryList");
        oEntryList.removeSelections();
    }
}

希望这能有所帮助。

建议使用路由器,但这并不能解决问题。