代码之家  ›  专栏  ›  技术社区  ›  Swappy

无法从SAPUI5中的主详细信息视图路由到全屏页

  •  0
  • Swappy  · 技术社区  · 7 年前

    我在第一个屏幕上有一个主详细信息页。在该屏幕上,将显示一个带有3个单选按钮的对话框。单击第一个单选按钮时,它应该导航到另一个具有全屏视图的页面,但我无法执行此操作。它将引发以下错误: 控件SplitAppId没有名为pages的聚合-EventProvider sap.ui.core.routing.Target

    noDataDetail.controller.js:

            sap.ui.define([
            "sap/ui/core/mvc/Controller"
        ], function (Controller) {
            "use strict";
    
            return Controller.extend("hmel.CreateTravelRequest.controller.noDataDetail", {
    
                onInit: function()
            {
                this.router = sap.ui.core.UIComponent.getRouterFor(this);
                    this.router.attachRoutePatternMatched(this.handleRouteMatched, this);
            },
    
    
                handleRouteMatched: function(oEvent) {
                    if (oEvent.getParameter("name") !== "noDataDetail") {
                        return;
                    }
                    this.selectionFragment = sap.ui.xmlfragment("hmel.CreateTravelRequest.view.SelectDialog", this);
                    this.getView().addDependent(this.selectionFragment);
                    this.selectionFragment.open();
                },
    
                    onSubmit: function() {
                    var radioBtnGrp = sap.ui.getCore().byId("radioBtnGrpId");
                    var selectedIndex = radioBtnGrp.getSelectedIndex();
    
                    this.selectionFragment.close();
                    this.selectionFragment.destroy();
                    this.selectionFragment = null;
    
                    if (selectedIndex === 0) {
                        this.onTravelReqCreate();
                    } else if (selectedIndex === 1) {
                        this.onGuestHouseApproval();
                    } else if (selectedIndex === 2) {
                        this.onMealApproval();
                    }
                }
                ,
    
                onTravelReqCreate: function() {
                    this.router.navTo("CreateTravelReq");
                }/*,
    
                onMealApproval: function() {
                    this.router.navTo("MealMaster");
                },
    
                onGuestHouseApproval: function() {
                    this.router.navTo("GuestHouseMaster");
                }*/
    
    
            });
    
        });
    

    manifest.json文件:

            {
            "_version": "1.8.0",
            "sap.app": {
                "id": "hmel.CreateTravelRequest",
                "type": "application",
                "i18n": "i18n/i18n.properties",
                "applicationVersion": {
                    "version": "1.0.0"
                },
                "title": "{{appTitle}}",
                "description": "{{appDescription}}",
                "sourceTemplate": {
                    "id": "ui5template.basicSAPUI5ApplicationProject",
                    "version": "1.40.12"
                }
            },
            "sap.ui": {
                "technology": "UI5",
                "icons": {
                    "icon": "",
                    "favIcon": "",
                    "phone": "",
                    "phone@2": "",
                    "tablet": "",
                    "tablet@2": ""
                },
                "deviceTypes": {
                    "desktop": true,
                    "tablet": true,
                    "phone": true
                },
                "supportedThemes": [
                    "sap_hcb",
                    "sap_belize"
                ]
            },
            "sap.ui5": {
                "rootView": {
                    "viewName": "hmel.CreateTravelRequest.view.noDataSplitApp",
                    "type": "XML"
                },
                "dependencies": {
                    "minUI5Version": "1.30.0",
                    "libs": {
                        "sap.ui.layout": {},
                        "sap.ui.core": {},
                        "sap.m": {}
                    }
                },
                "contentDensities": {
                    "compact": true,
                    "cozy": true
                },
                "models": {
                    "i18n": {
                        "type": "sap.ui.model.resource.ResourceModel",
                        "settings": {
                            "bundleName": "hmel.CreateTravelRequest.i18n.i18n"
                        }
                    }
                },
                "resources": {
                    "css": [
                        {
                            "uri": "css/style.css"
                        }
                    ]
                },
                "routing": {
                    "config": {
                        "routerClass": "sap.m.routing.Router",
                        "viewType": "XML",
                        "async": true,
                        "viewPath": "hmel.CreateTravelRequest.view",
                        "targetAggregation": "masterPages",
                        "clearTarget": false
                    },
                    "routes": [
                        {
                            "pattern": "",
                            "name": "noDataMaster",
                            "view": "noDataMaster",
                            "targetControl": "SplitAppId",
                            "subroutes": [
                                {
                                    "pattern": "",
                                    "name": "noDataDetail",
                                    "view": "noDataDetail",
                                    "targetAggregation": "detailPages"
                                }
                            ]
                        },
    
                        {
                            "pattern": "CreateTravelReq",
                            "targetAggregation":"pages",
                             "name": "CreateTravelReq",
                             "viewPath": "hmel.CreateTravelRequest.view",
                             "view":"CreateTravelReq",
                             "controlId":"SplitAppId"
                        }
    
                    ]
    
    
    
                }
            }
        }
    

    2 回复  |  直到 7 年前
        1
  •  0
  •   Swappy    7 年前

    我没有使用母版详细信息页面,而是使用全屏页面作为基本容器,这使得导航和路由方式过于简单。

        2
  •  0
  •   O.O    7 年前

    我认为问题出在manifest.json中的“模式”中,您已经要求路由器 navTo 另一个屏幕不提供两者之间的链接。看看SAP提供的这个示例 Master-Detail with levels 假设每个单选按钮都是一个产品,它将导航到另一个视图。

    或者

    Master-Detail Example