具有参数_Object匹配事件的SAPUI5路由也未触发

2020-09-25 00:33发布

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

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


我正在使用WEB IDE开发自定义SAPUI5应用程序,并且我已经创建了一个自定义视图,该视图需要根据从上一个视图接收到的参数绑定数据,但是页面加载事件未触发,请检查我的视图 代码和建议,

Manifest.json

"路由":{
             " config":{
                 " routerClass":" sap.m.routing.Router",
                 " viewType":" XML",
                 " viewPath":" oomsdisplay.pso.com.view",
                 " controlId":" app",
                 " controlAggregation":"页面",
                 "绕过":{
                     "目标":[
                         "未找到"
                     ]
                 },
                 "异步":true
             },
             "路线":[
                 {
                     " pattern":"",
                     " name":"工作清单",
                     "目标":[
                         "工作清单"
                     ]
                 },
                 {
                     " pattern":" ZISOHSet/{objectId}",
                     " name":"对象",
                     "目标":[
                         "目的"
                     ]
                 },
                 {
                     " pattern":" ZISOHSet/{objectId}",
                     " name":" payobject",
                     "目标":[
                         "付款对象"
                     ]
                 }
             ],
             "目标":{
                 "工作清单":{
                     " viewName":"工作清单",
                     " viewId":"工作清单",
                     " viewLevel":1
                 },
                 "对象":{
                     " viewName":"对象",
                     " viewId":"对象",
                     " viewLevel":2
                 },
                 " objectNotFound":{
                     " viewName":" ObjectNotFound",
                     " viewId":" objectNotFound"
                 },
                 "未找到": {
                     " viewName":"未找到",
                     " viewId":" notFound"
                 },
                 " payobject":{
                     " viewName":" PayObject",
                     " viewId":" payobject",
                     " viewLevel":2
                 }
             }
         } 

这是我的C0mponent.js,

 init:函数(){
            //调用基本组件的init函数
             UIComponent.prototype.init.apply(this,arguments);

            //使用组件初始化错误处理程序
             this._oErrorHandler =新的ErrorHandler(this);

            //设置设备型号
             this.setModel(models.createDeviceModel()," device");
            //设置FLP模型
             this.setModel(models.createFLPModel()," FLP");

            //根据url/hash创建视图
             this.getRouter()。initialize();
         },

现在,我已经创建了一个自定义视图,当我按下视图对象上的按钮时,我的第二个视图即PayObject将被调用,这是我按下视图一的按钮上的代码,

 fViewPayment:函数(oEvent){
     this.getRouter()。navTo(" payobject",{
                         objectId:" MyParameterhere"
                 });
 } 

现在,这是我的PayObejct视图,初始化事件,对象已匹配,但不起作用,

 onInit:function(){
         var iOriginalBusyDelay,
                     oViewModel = new JSONModel({
                         忙:是的,
                         延迟:0
                     });
                //存储原始的忙碌指示器延迟,以便以后可以恢复
                 iOriginalBusyDelay = this.getView()。getBusyIndi​​catorDelay();
                 this.setModel(oViewModel," objectView");
                 this.getOwnerComponent()。getModel()。metadataLoaded()。then(function(){
                    //恢复对象视图的原始繁忙指示器延迟
                     oViewModel.setProperty("/img/delay",iOriginalBusyDelay);
                 });
                 var oRouter = sap.ui.core.UIComponent.getRouterFor(this);
                 oRouter.getRoute(" payobject")。attachPatternMatched(this._onObjectMatched,this);
     }
    //此事件未触发
         _onObjectMatched:function(oEvent){
     var sObjectId = oEvent.getParameter(" arguments")。objectId;
     sap.m.MessageBox.show(sObjectId);
//我的逻辑在这里
 } 

谢谢

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

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


我正在使用WEB IDE开发自定义SAPUI5应用程序,并且我已经创建了一个自定义视图,该视图需要根据从上一个视图接收到的参数绑定数据,但是页面加载事件未触发,请检查我的视图 代码和建议,

Manifest.json

"路由":{
             " config":{
                 " routerClass":" sap.m.routing.Router",
                 " viewType":" XML",
                 " viewPath":" oomsdisplay.pso.com.view",
                 " controlId":" app",
                 " controlAggregation":"页面",
                 "绕过":{
                     "目标":[
                         "未找到"
                     ]
                 },
                 "异步":true
             },
             "路线":[
                 {
                     " pattern":"",
                     " name":"工作清单",
                     "目标":[
                         "工作清单"
                     ]
                 },
                 {
                     " pattern":" ZISOHSet/{objectId}",
                     " name":"对象",
                     "目标":[
                         "目的"
                     ]
                 },
                 {
                     " pattern":" ZISOHSet/{objectId}",
                     " name":" payobject",
                     "目标":[
                         "付款对象"
                     ]
                 }
             ],
             "目标":{
                 "工作清单":{
                     " viewName":"工作清单",
                     " viewId":"工作清单",
                     " viewLevel":1
                 },
                 "对象":{
                     " viewName":"对象",
                     " viewId":"对象",
                     " viewLevel":2
                 },
                 " objectNotFound":{
                     " viewName":" ObjectNotFound",
                     " viewId":" objectNotFound"
                 },
                 "未找到": {
                     " viewName":"未找到",
                     " viewId":" notFound"
                 },
                 " payobject":{
                     " viewName":" PayObject",
                     " viewId":" payobject",
                     " viewLevel":2
                 }
             }
         } 

这是我的C0mponent.js,

 init:函数(){
            //调用基本组件的init函数
             UIComponent.prototype.init.apply(this,arguments);

            //使用组件初始化错误处理程序
             this._oErrorHandler =新的ErrorHandler(this);

            //设置设备型号
             this.setModel(models.createDeviceModel()," device");
            //设置FLP模型
             this.setModel(models.createFLPModel()," FLP");

            //根据url/hash创建视图
             this.getRouter()。initialize();
         },

现在,我已经创建了一个自定义视图,当我按下视图对象上的按钮时,我的第二个视图即PayObject将被调用,这是我按下视图一的按钮上的代码,

 fViewPayment:函数(oEvent){
     this.getRouter()。navTo(" payobject",{
                         objectId:" MyParameterhere"
                 });
 } 

现在,这是我的PayObejct视图,初始化事件,对象已匹配,但不起作用,

 onInit:function(){
         var iOriginalBusyDelay,
                     oViewModel = new JSONModel({
                         忙:是的,
                         延迟:0
                     });
                //存储原始的忙碌指示器延迟,以便以后可以恢复
                 iOriginalBusyDelay = this.getView()。getBusyIndi​​catorDelay();
                 this.setModel(oViewModel," objectView");
                 this.getOwnerComponent()。getModel()。metadataLoaded()。then(function(){
                    //恢复对象视图的原始繁忙指示器延迟
                     oViewModel.setProperty("/img/delay",iOriginalBusyDelay);
                 });
                 var oRouter = sap.ui.core.UIComponent.getRouterFor(this);
                 oRouter.getRoute(" payobject")。attachPatternMatched(this._onObjectMatched,this);
     }
    //此事件未触发
         _onObjectMatched:function(oEvent){
     var sObjectId = oEvent.getParameter(" arguments")。objectId;
     sap.m.MessageBox.show(sObjectId);
//我的逻辑在这里
 } 

谢谢

付费偷看设置
发送
1条回答
宇峰
1楼-- · 2020-09-25 01:11

Hamdan,

请问您为什么在这里使用this.getRouter():

 fViewPayment:函数(oEvent){
     this.getRouter()。navTo(" payobject",{
             objectId:" MyParameterhere"
     });
 }
 

在这里,您再次在onInit上设置oRouter:

 onInit:function(){
         var iOriginalBusyDelay,
                     oViewModel = new JSONModel({
                         忙:是的,
                         延迟:0
                     });
                //存储原始的忙碌指示器延迟,以便以后可以恢复
                 iOriginalBusyDelay = this.getView()。getBusyIndi​​catorDelay();
                 this.setModel(oViewModel," objectView");
                 this.getOwnerComponent()。getModel()。metadataLoaded()。then(function(){
                    //恢复对象视图的原始繁忙指示器延迟
                     oViewModel.setProperty("/img/delay",iOriginalBusyDelay);
                 });
                 var oRouter = sap.ui.core.UIComponent.getRouterFor(this);
                 oRouter.getRoute(" payobject")。attachPatternMatched(this._onObjectMatched,this);
     }
    //此事件未触发
         _onObjectMatched:function(oEvent){
     var sObjectId = oEvent.getParameter(" arguments")。objectId;
     sap.m.MessageBox.show(sObjectId);
//我的逻辑在这里
 } 

您是否在这种情况下使用BaseController.js?

亲切的问候,

T。

一周热门 更多>