我在第一个屏幕上有一个“主从页面”。在该屏幕上,出现一个带有3个单选按钮的对话框。单击第一个单选按钮时,它应导航到另一个具有全屏视图的页面,但我无法执行此操作。它引发以下错误:控件SplitAppId没有名为页面的聚合-EventProvider sap.ui.core.routing.Target 。 SplitAppId是主从应用程序基础页面的ID。我知道路由时会出现一些错误,但我无法弄清楚。请帮忙。下面是代码。谢谢。
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页面。
答案 0 :(得分:0)
我认为问题出在manifest.json的“模式”中,您已要求路由器navTo
另一个屏幕,但未提供两者之间的链接。看看SAP Master-Detail with levels的示例,假设每个单选按钮都是一个产品,它将导航到另一个视图。
OR
看看这个应用程序,展示如何在主视图和详细视图Master-Detail Example
之间导航答案 1 :(得分:0)
我使用“全屏”页面作为基本容器,而不是使用“详细信息”页面,这使导航和路由方式变得非常简单。