在SAPUI5中使用路由匹配处理程序发布

2020-09-02 05:03发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 我正在开发一个主从应用程...

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

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


嗨,

我正在开发一个主从应用程序,并且基于在主页面上单击某个项目的情况,我想在详细信息页面中显示详细信息。 我正在使用json模型。 问题是,当在主视图上单击某个项目时,我能够获取从我的主控制器发送到详细控制器的路线/导航路径,但是然后,当我使用我收到的路线/导航路径进行元素绑定时 详细信息控制器,我的详细信息视图控件未绑定到数据。 现在,如果我先将JSON模型分配给我的详细信息视图,然后使用接收到的路径进行元素绑定,则它可以工作。 下面是代码。

Master.controller.js

 onInit:function(){

 var oJsonModel = new sap.ui.model.json.JSONModel(" model/mockData/fruits.json");
 this.getView()。setModel(oJsonModel);
 this.oRouter = this.getOwnerComponent()。getRouter();

 },

 showFruitDet:function(oEvent){//这是单击主视图中的项目时发生的事件
 var sPath = oEvent.getParameter(" listItem")。getBindingContextPath();
 var indexOfFruit = sPath.split("/");
 indexOfFruit = indexOfFruit [indexOfFruit.length-1];
 this.oRouter.navTo(" detail",{id:indexOfFruit});
 }
 

Detail.controller.js

//在细节控制器中,我能够获取
//在主视图中单击了对象。
//现在,如果我取消注释onInit方法中的最后一条语句
//在Herculis方法中取消注释第4条语句,我得到
//详细信息页面上的输出。
//如果我保留这两个语句的注释,则
//详细页面为空。
//我的问题是,我是否必须再次分配JSON模型
//详细显示视图,然后将元素与路径绑定?
//我在这里想念什么吗?

 onInit:function(){
 this.router = this.getOwnerComponent()。getRouter();
 this.router.attachRoutePatternMatched(this.herculis,this);
//this.oJsonModel = new sap.ui.model.json.JSONModel(" model/mockData/fruits.json");
 },

 大力神:function(oEvent){
 var selectedItemIndex = oEvent.getParameter(" arguments")。id;
 var sPath ="/img/fruits/" + selectedItemIndex;
 var oForm = this.getView()。byId(" oFruitForm");
//this.getView().setModel(this.oJsonModel);
 this.getView()。bindElement(sPath);
//oForm.bindElement(sPath);
 }
 
4条回答
xfwsx85
2020-09-02 05:46 .采纳回答

您必须将模型放入组件中(this.setModel(******)放入组件中)

如果在主控制器中进行操作,则该模型仅可用于主视图

一周热门 更多>