点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
你好
我有一个带有2个屏幕的SAPUI5应用程序,我试图将所选行从我的第一个屏幕传递到第二个屏幕,
但是我无法在第二个屏幕上显示数据,绑定上下文为空
您能告诉我编码中有什么问题吗?
这是我manifest.json的一部分
{ "路由":{ " config":{ " viewPath":" DI_Warehouse_Replenishment.view", " controlId":" V_Root", " viewLevel":1 " controlAggregation":"页面", " routerClass":" sap.m.routing.Router" }, "目标":{ " Target_REHeader":{ " viewType":" XML", " transition":" slide", " clearAggregation":正确, " viewName":" V_REHeader", " viewLevel":1 }, " Target_REDetail":{ " viewType":" XML", " transition":" slide", " clearAggregation":正确, " viewName":" V_REDetail", " viewLevel":2 } }, "路线":[{ " name":" Target_REHeader", " pattern":"", " titleTarget":"", " greedy":错误, " target":[" Target_REHeader"] },{ " name":" Target_REDetail", " pattern":" Target_REDetail/{replPath}", " titleTarget":"", " greedy":错误, " target":[" Target_REDetail"] }] } }
主页视图xml
主页controller.js(我在传递到第二个屏幕之前将"/"替换为" R",然后在第二个屏幕中以另一种方式进行操作,因为我在路径中包含多个/这样
/items/25
showSelected:function(evt){ var oView = this.getView(); 如果(oView.byId(" ContentTable")。getSelectedItem()!== null){ var o = oView.byId(" ContentTable")。getSelectedItem()。getBindingContext(" REPL")。getObject(); var oRouter = sap.ui.core.UIComponent.getRouterFor(this); var pathr = this.getView()。byId(" ContentTable")。getSelectedItem()。getBindingContext(" REPL")。getPath()。toString()。replace(/\//g," R"); oRouter.navTo(" Target_REDetail",{ replPath:路径 }); }其他{ MessageBox.show("未选择行",sap.m.MessageBox.Icon.ERROR); } } });
第二页controller.js
onInit:function(){ //获取路由器信息 var oRouter = sap.ui.core.UIComponent.getRouterFor(this); oRouter.getRoute(" Target_REDetail")。attachPatternMatched(this._onObjectMatched,this); var oView = this.getView(); }, _onObjectMatched:函数(oEvent){ var pathr = oEvent.getParameter(" arguments")。replPath.toString()。replace(/R/g,"/"); this.getView()。bindElement({ 路径:路径, 型号:" REPL" }); alert(this.getView()。getBindingContext(" REPL")。getProperty(" EUsername"))); },
嗨,
您不必传递完整的路径,而只需传递所选行的键,而在第二个视图中使用键构建路径,请找到以下代码片段:
"对象"是实体集名称。
还要确保模型" REPL"是全局模型,并且在两个视图上都已设置。
此致
Rahul
您可以在component.js的init方法内创建全局模型:
现在您可以在视图和控制器内部访问此模型,如下所示:
谢谢,明天我会尝试。
但是,当您谈论全局模型时," REPL"仅在主页中定义,这是manifest.json中" ZREPLENISHMENT"的JSON本地副本,我在表上使用REPL进行本地过滤。
我将尝试使用" ZREPLENISHMENT"而不是" REPL",我感觉它会起作用,我会告诉你:)
我还没有开始工作,因为REPL不是manifest.json内的全局模型,并且REPL基于REHeaderSet,
我正在搜索如何在manifest.json中定义一个虚拟全局模型,该模型只能在视图和控制器内部使用?
如果我能做到这一点,那么我可以在第二个视图上使用REPL
,或者如果有可能摆脱REPL并在本地过滤ZREPLENISHMENT模型,那 很好
一周热门 更多>