SAPUI5 3页导航问题

2020-08-21 16:08发布

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

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


专家您好,

我正在开发带有路由器的3页sapui5应用程序以进行导航。 第一页和第二页可以正确导航。 从第二页转到第三页时,总是加载第二页。 下面是用于路由和目标的manifest.json配置。我发现第三页的视图根本没有加载。 我在第3个视图中放置了一个警报,但它没有显示。

任何线索,这里出了什么问题?

谢谢

Pradeep

"路线":[{
 " name":" overViewRoute",
 " pattern":"",
 " titleTarget":"",
 " greedy":错误,
 " target":[" overViewTarget"]
 },{
 " name":" detailViewRoute",
 " pattern":" {selectedOrgUnit}",
 " titleTarget":"",
 " greedy":错误,
 " target":[" detailViewTarget"]
 },{
 " name":" empDetViewRoute",
 " pattern":" {PERNR}",
 " titleTarget":"",
 " greedy":错误,
 " target":[" empDetViewTarget"]
 }],
 "目标":{
 " overViewTarget":{
 " viewType":" XML",
 " transition":" slide",
 " clearAggregation":" true",
 " viewName":" overView",
 " viewLevel":1
 },
 " detailViewTarget":{
 " viewType":" XML",
 " transition":" slide",
 " clearAggregation":正确,
 " viewName":" detailsView",
 " viewLevel":2
 },
 " empDetViewTarget":{
 " viewType":" XML",
 " transition":" slide",
 " clearAggregation":正确,
 " viewName":" empDetView",
 " viewLevel":3
 }
 下面是第二页controller.js代码,导航到第三页:

 showEmpDetails:function(oEvt){
 var oModel = this.getView()。getModel();
 var oPath = oEvt.getSource()。getParent()。getBindingContextPath();
 var oData = oModel.getProperty(oPath);
 var oRouter = sap.ui.core.UIComponent.getRouterFor(this);
 oRouter.navTo(" empDetViewRoute",{PERNR:oData.pernr});
 }

 和onInit的第3页:

 onInit:function(oEvt){
 var oRouter = sap.ui.core.UIComponent.getRouterFor(this);
 oRouter.getRoute(" empDetViewRoute")。attachMatched(this._onRouteMatched,this);

 },
 _onRouteMatched:function(oEvt){
 var oPernr = oEvt.getParameter(" arguments");
 var filter = new sap.ui.model.Filter(" pernr",sap.ui.model.FilterOperator.EQ,oPernr.selectedPERNR);
 var binding = this.byId(" empOverTime")。getBinding(" items");
 binding.filter(filters);
 }
 

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

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


专家您好,

我正在开发带有路由器的3页sapui5应用程序以进行导航。 第一页和第二页可以正确导航。 从第二页转到第三页时,总是加载第二页。 下面是用于路由和目标的manifest.json配置。我发现第三页的视图根本没有加载。 我在第3个视图中放置了一个警报,但它没有显示。

任何线索,这里出了什么问题?

谢谢

Pradeep

"路线":[{
 " name":" overViewRoute",
 " pattern":"",
 " titleTarget":"",
 " greedy":错误,
 " target":[" overViewTarget"]
 },{
 " name":" detailViewRoute",
 " pattern":" {selectedOrgUnit}",
 " titleTarget":"",
 " greedy":错误,
 " target":[" detailViewTarget"]
 },{
 " name":" empDetViewRoute",
 " pattern":" {PERNR}",
 " titleTarget":"",
 " greedy":错误,
 " target":[" empDetViewTarget"]
 }],
 "目标":{
 " overViewTarget":{
 " viewType":" XML",
 " transition":" slide",
 " clearAggregation":" true",
 " viewName":" overView",
 " viewLevel":1
 },
 " detailViewTarget":{
 " viewType":" XML",
 " transition":" slide",
 " clearAggregation":正确,
 " viewName":" detailsView",
 " viewLevel":2
 },
 " empDetViewTarget":{
 " viewType":" XML",
 " transition":" slide",
 " clearAggregation":正确,
 " viewName":" empDetView",
 " viewLevel":3
 }
 下面是第二页controller.js代码,导航到第三页:

 showEmpDetails:function(oEvt){
 var oModel = this.getView()。getModel();
 var oPath = oEvt.getSource()。getParent()。getBindingContextPath();
 var oData = oModel.getProperty(oPath);
 var oRouter = sap.ui.core.UIComponent.getRouterFor(this);
 oRouter.navTo(" empDetViewRoute",{PERNR:oData.pernr});
 }

 和onInit的第3页:

 onInit:function(oEvt){
 var oRouter = sap.ui.core.UIComponent.getRouterFor(this);
 oRouter.getRoute(" empDetViewRoute")。attachMatched(this._onRouteMatched,this);

 },
 _onRouteMatched:function(oEvt){
 var oPernr = oEvt.getParameter(" arguments");
 var filter = new sap.ui.model.Filter(" pernr",sap.ui.model.FilterOperator.EQ,oPernr.selectedPERNR);
 var binding = this.byId(" empOverTime")。getBinding(" items");
 binding.filter(filters);
 }
 
付费偷看设置
发送
4条回答
何必丶何苦呢
1楼-- · 2020-08-21 16:44

您好Pradeep,

将第三个视图的视图级别更改为" 2"。

clever101
2楼-- · 2020-08-21 16:47

任何线索...

hengyuye
3楼-- · 2020-08-21 16:42

任何更新。.

wang628962
4楼-- · 2020-08-21 16:21

Hi

请按照以下方式进行调试。

 var oPath = oEvt.getSource()。getParent()。getBindingContextPath();
    console.log(oPath)"在这里看到什么值
 var oData = oModel.getProperty(oPath);
 var oRouter = sap.ui.core.UIComponent.getRouterFor(this);
    console.log(oRouter)
 oRouter.navTo(" empDetViewRoute",{PERNR:oData.pernr});

 "在navTo函数中放置一个断点-是否在此处标识页面

 还要检查page3没有错误。如果加载错误,也将返回到第2页。

一周热门 更多>