点击此处---> 群内免费提供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); }
您必须将模型放入组件中(this.setModel(******)放入组件中)
如果在主控制器中进行操作,则该模型仅可用于主视图
完美! 我现在将默认模型配置放在manifest.json中,并且可以正常工作。 谢谢。
详细视图如何创建? 通过路由?
是否正确,在manifest.json中。
一周热门 更多>