Невозможно перенаправить на полноэкранную страницу из представления основных сведений в SAPUI5 - PullRequest
0 голосов
/ 12 сентября 2018

У меня есть страница Master-Detail на первом экране.На этом экране появляется диалоговое окно с 3 переключателями.При нажатии на первую радиокнопку она должна перейти на другую страницу, имеющую полноэкранный режим, но я не могу этого сделать.Выдает следующую ошибку: Элемент управления SplitAppId не имеет агрегации, называемой страницами - EventProvider sap.ui.core.routing.Target .SplitAppId - это идентификатор базовой страницы приложения Master-detail.Я знаю, что при маршрутизации есть какая-то ошибка, но я не могу понять это.Пожалуйста помоги.Ниже приведен код.Благодарю.

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"
                    }

                ]



            }
        }
    }

Я хочу перейти от noDataDetail к странице CreateTravelReq.

Ответы [ 2 ]

0 голосов
/ 13 сентября 2018

Вместо использования страницы Master-Detail я использовал полноэкранную страницу в качестве базового контейнера, что делало навигацию и маршрутизацию слишком простой.

0 голосов
/ 12 сентября 2018

Я думаю, что проблема в «шаблоне» в manifest.json, вы попросили маршрутизатор на navTo другой экран без предоставления связи между ними.Посмотрите на этот образец с помощью SAP Master-Detail с уровнями , предполагая, что каждая радиокнопка является продуктом, который будет переходить к другому виду.

ИЛИ

Взгляните на это приложение, показывающее, как перемещаться между главным и двойным подробными представлениями Пример основных подробностей

...