В основном, я скопировал каждую вещь из демонстрационного приложения sap, https://sapui5.hana.ondemand.com/sdk/test-resources/sap/m/demokit/tdg/index.html?responderOn=true , что я пытаюсь сделать, это: на главной странице, я добавил кнопку, чтобы вызвать навигацию. Я добавил новую страницу, когда эта кнопка нажата, новый вид должен отображаться на странице подробностей. проблема: Когда кнопка нажата, вызывается мой обработчик событий, который вызовет навигацию. в обработчике событий handepatternmatched я получил название маршрута «продукт». но он должен быть «detail1». в моем коде это похоже на navTo ("detail1"), что здесь не так? конечно, мое подробное описание1 не отображается на странице подробностей.sap ui5 routing не работает
routing : {
config : {
routerClass : com.pdh.MyRouter,
viewType : "XML",
viewPath : "com.pdh.view",
targetAggregation : "detailPages",
clearTarget : false
},
routes : [
{
pattern : "",
name : "main",
view : "Master",
targetAggregation : "masterPages",
targetControl : "idAppControl",
subroutes : [
{
pattern : "{product}/:tab:",
name : "product",
view : "Detail"
}
]
},{
pattern : "detail1",
name : "detail1",
view : "Detail1",
targetAggregation : "detailPages",
targetControl : "idAppControl"
},
{
name : "catchallMaster",
view : "Master",
targetAggregation : "masterPages",
targetControl : "idAppControl",
subroutes : [
{
pattern : ":all*:",
name : "catchallDetail",
view : "NotFound",
transition : "show"
}
]
}
]
}
мастер вид где кнопка добавляется
<mvc:View controllerName="com.pdh.view.Master"
displayBlock="true" xmlns:mvc="sap.ui.core.mvc" xmlns="sap.m">
<Page id="page" title="{i18n>masterTitle}">
<subHeader>
<Bar id="searchBar">
<contentMiddle>
<!-- <SearchField id="searchField" showRefreshButton="{device>/isNoTouch}"
search="onSearch" tooltip="{i18n>masterSearchTooltip}" width="100%"> </SearchField> -->
</contentMiddle>
</Bar>
</subHeader>
<content>
<Button xmlns="sap.m" busy="false" busyIndicatorDelay="1000"
visible="true" text="Jun" type="Default" width="" enabled="true"
icon="" iconFirst="true" activeIcon="" iconDensityAware="true"
ariaDescribedBy="" ariaLabelledBy="" tap="" press="junNav">
<tooltip></tooltip> <!-- sap.ui.core.TooltipBase -->
<dependents></dependents> <!-- sap.ui.core.Control, since 1.19 -->
</Button>
<!-- <List id="list" items="{/}" mode="{device>/listMode}"
noDataText="{i18n>masterListNoDataText}" select="onSelect" growing="true"
growingScrollToLoad="true">
<items>
<ObjectListItem type="{device>/listItemType}" press="onSelect"
title="{product_cd}">
</ObjectListItem>
</items>
</List> -->
</content>
<footer>
<Bar>
<contentRight>
<Button icon="sap-icon://add" tooltip="{i18n>masterFooterAddButtonTooltip}"
press="onAddProduct" />
</contentRight>
</Bar>
</footer>
</Page>
обработчик событий в контроллере
junNav : function() {
// This is only relevant when running on phone devices
console.log("junNav");
this.getRouter().navTo("detail1",null,true);
},
обработчик события для события routepatternmatched
onRouteMatched : function(oEvent) {
var sName = oEvent.getParameter("name");
console.log("master controller onRouteMatched "+sName);
if (sName !== "main") {
return;
}
//Load the detail view in desktop
this.getRouter().myNavToWithoutHash({
currentView : this.getView(),
targetViewName : "com.pdh.view.Detail",
targetViewType : "XML"
});
//Wait for the list to be loaded once
this.waitForInitialListLoading(function() {
//On the empty hash select the first item
this.selectFirstItem();
});
},