使用SAPUI5中的参数进行路由时遇到问题
当在下一页(视图)上单击时,我试图在列表中显示特定项目的数据 这里的使用SAPUI5中的参数进行路由时遇到问题,sapui5,Sapui5,当在下一页(视图)上单击时,我试图在列表中显示特定项目的数据 这里的Overview.view.xml是默认视图,带有连接到oData模型的可单击列表。 接下来是控制器概览,导航到下一页,即Overview.controller.js。 下一页是Detail.view.xml 我想在此页面中显示已单击项目的详细信息 #Overview.view.xml <mvc:View controllerName="root.demo.controller.Overview" xmln
Overview.view.xml
是默认视图,带有连接到oData模型的可单击列表。
接下来是控制器概览,导航到下一页,即Overview.controller.js
。
下一页是Detail.view.xml
我想在此页面中显示已单击项目的详细信息
#Overview.view.xml
<mvc:View controllerName="root.demo.controller.Overview" xmlns:html="http://www.w3.org/1999/xhtml" xmlns:mvc="sap.ui.core.mvc"
displayBlock="true" xmlns="sap.m">
<App >
<pages>
<Page title="{i18n>title}">
<content>
<List headerText="list" class="sapUiResponsiveMargin" width="auto" items="{HANA>/person}">
<items>
<ObjectListItem title="{HANA>ID} x {HANA>FIRSTNAME}" type="Navigation" press="onPress"/>
</items>
</List>
</content>
</Page>
</pages>
</App>
</mvc:View>
#Overview.controller.js
sap.ui.define([
"sap/ui/core/mvc/Controller"
], function (Controller) {
"use strict";
return Controller.extend("root.demo.controller.App", {
onPress: function (oEvent) {
var oRouter = sap.ui.core.UIComponent.getRouterFor(this);
oRouter.navTo("detail");
}
});
});
#Detail.view.xml
<mvc:View xmlns="sap.m"
xmlns:mvc="sap.ui.core.mvc">
<Page title="{i18n>detailPageTitle}">
<ObjectStatus title="PAGE 1"
/>
</Page>
</mvc:View>
#Overview.view.xml
#Overview.controller.js
sap.ui.define([
“sap/ui/core/mvc/Controller”
],功能(控制器){
“严格使用”;
返回Controller.extend(“root.demo.Controller.App”{
onPress:功能(oEvent){
var oRouter=sap.ui.core.UIComponent.getRouterFor(this);
oRouter.navTo(“细节”);
}
});
});
#Detail.view.xml
如果您有不同的关联实体集,则需要将关联的键发送到第二个视图,并在那里创建指向关联实体集的绑定
如果没有,则需要将对象发送到第二个视图
无论哪种方式,您都需要使用参数进行导航
在清单文件中,您需要指定路由
"routes": [
{
"name": "TargetMaster",
"pattern": "RouteMaster",
"target": [
"TargetMaster"
]
},
{
"pattern": "Detail/{storePath}",
"name": "Detail",
"target": "Detail"
}
],
"targets": {
"TargetMaster": {
"viewType": "XML",
"transition": "slide",
"clearControlAggregation": false,
"viewName": "Master"
},
"Detail": {
"viewType": "XML",
"viewName": "Detail"
}
}
在Overview Controller中,您需要创建类似于的导航
onListItemPress: function(oEvent){
var oItem = oEvent.getSource();
var oRouter = sap.ui.core.UIComponent.getRouterFor(this);
oRouter.navTo("Detail",{
storePath: oItem.getBindingContext().getProperty("Store")
});
}
您可以在官方文档中找到更多信息如果您有不同的关联实体集,则需要将关联密钥发送到第二个视图,并在那里创建指向关联实体集的绑定 如果没有,则需要将对象发送到第二个视图 无论哪种方式,您都需要使用参数进行导航 在清单文件中,您需要指定路由
"routes": [
{
"name": "TargetMaster",
"pattern": "RouteMaster",
"target": [
"TargetMaster"
]
},
{
"pattern": "Detail/{storePath}",
"name": "Detail",
"target": "Detail"
}
],
"targets": {
"TargetMaster": {
"viewType": "XML",
"transition": "slide",
"clearControlAggregation": false,
"viewName": "Master"
},
"Detail": {
"viewType": "XML",
"viewName": "Detail"
}
}
在Overview Controller中,您需要创建类似于的导航
onListItemPress: function(oEvent){
var oItem = oEvent.getSource();
var oRouter = sap.ui.core.UIComponent.getRouterFor(this);
oRouter.navTo("Detail",{
storePath: oItem.getBindingContext().getProperty("Store")
});
}
您可以在官方文档中找到更多信息