SAPUI5路线导航,其中有从表选择中选择的行,以传递到第二个屏幕

2020-09-27 01:45发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好 我有一个带有2个屏幕的S...

         点击此处--->   EasySAP.com群内免费提供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

 
     <列>
         <!- ->
         <栏目>
             <标签/>
         
         <栏目>
             <标签/>
         
         <栏目>
             <标签/>
         
         <栏目>
             <标签/>
         
         <栏目>
             <标签/>
         
         <栏目>
             <标签/>
         
         <栏目>
             <标签/>
         
         <栏目>
             <标签/>
         
         <栏目>
             <标签/>
         
         <栏目>
             <标签/>
         
         <栏目>
             <标签/>
         
         <栏目>
             <标签/>
         
         <栏目>
             <标签/>
         
             <标签/>
         
     <项目>
         
             <单元格>
                 <!-<文本text =" {REPL> Itemline}"/>->
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
             
         

主页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")));
 },

 
5条回答
灬番茄
2020-09-27 02:14

我还没有开始工作,因为REPL不是manifest.json内的全局模型,并且REPL基于REHeaderSet,

 onInit:function(){
 var oView = this.getView();
 var oData = new ODataModel("/img/sap/opu/odata/sap/ZFGREPLENISHMENT_SRV/",true);
 oData.read("/img/REHeaderSet",null,null,true,function(response){
 var newArray = response.results;
 var model = new JSONModel({
 "项目":newArray
 });
 oView.setModel(model," REPL");
 },函数(错误){});
 }
 

我正在搜索如何在manifest.json中定义一个虚拟全局模型,该模型只能在视图和控制器内部使用?

如果我能做到这一点,那么我可以在第二个视图上使用REPL

一周热门 更多>