使用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")   
            });
        }
您可以在官方文档中找到更多信息