Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sapui5 按预期使用绑定元素的UI5路由视图,但可以';找不到正确的路径_Sapui5 - Fatal编程技术网

Sapui5 按预期使用绑定元素的UI5路由视图,但可以';找不到正确的路径

Sapui5 按预期使用绑定元素的UI5路由视图,但可以';找不到正确的路径,sapui5,Sapui5,我正在尝试使用以下数据获取一个路由视图,以显示上一屏幕中的元素: 加载到模型locationListModel { value: [ { id: 251, locationName: "SAP", holidayList: [ ] } ] } 我假设我们可以使用以下路径访问第一个位置的locationName:{locationListModel>/value/0/loca

我正在尝试使用以下数据获取一个路由视图,以显示上一屏幕中的元素: 加载到模型
locationListModel

{
    value: [
        {
            id: 251,
            locationName: "SAP",
            holidayList: [ ]
        }
    ]
} 
我假设我们可以使用以下路径访问第一个位置的
locationName
{locationListModel>/value/0/locationName}

<Page showNavButton="true" navButtonPress="onNavBack">
    <ObjectHeader title="{locationName}"/> //doesn't show
    <ObjectHeader title="{locationListModel>/value/0/locationName}"/> //shows
</Page>
因此,当路由到另一个视图时,我们可以这样访问它,或者通过执行以下操作,通过视图中的元素绑定上下文访问它:

...
    onInit: function() {
        this.getRouter().getRoute("location").attachMatched(this._onObjectMatched, this);
    },
    _onObjectMatched: function(oEvent) {
        this.getView().bindElement({
            path:"/value/" + oEvent.getParameter("arguments").locationId,
            model:"locationListModel"});

    },
...
它在当前视图中显示:

但是,当尝试使用
{locationName}

<Page showNavButton="true" navButtonPress="onNavBack">
    <ObjectHeader title="{locationName}"/> //doesn't show
    <ObjectHeader title="{locationListModel>/value/0/locationName}"/> //shows
</Page>

//不显示
//显示
我们在上头球没有得到任何东西

这是参考演练完成的。 我是UI5的新手,似乎在任何地方都找不到这些信息。谢谢你的帮助。
谢谢。

在我看来,之所以会提出这个问题,是因为您可能参考了练习中的示例代码(您在上面提到过)。

在oData的情况下,此示例可以很好地传递URL路径,但如果您使用的是JSON示例,则此示例将不起作用。 这试图将参数invoicePath作为“Invoices/0”发送到路由器,这是错误的,您将得到如下错误:

出现这种情况是因为路径不希望中间有“/”。此问题有一个类似的线程:

您可以通过仅在路由器中传递索引来解决此问题,如

onPress:功能(oEvent){
var oItem=oEvent.getSource();
var oRouter=sap.ui.core.UIComponent.getRouterFor(this);
oRouter.navTo(“细节”{
//invoicePath应该是索引。
发票路径:oItem.getBindingContext(“发票”).getPath().substr(10)
});

}
我可以通过将
{locationListModel>locationName}
作为

<Page showNavButton="true" navButtonPress="onNavBack">
    <ObjectHeader title="{locationListModel>locationName}"/>
</Page>


感谢@Nandan Chaturvedi.

您在这个.getView().getModel(“locationListModel”)中得到了什么嗨,南丹!我知道这里似乎没有oData。你能从清单中添加你的路由器详细信息吗?所有这些看起来都很好。最后一件事是你呼叫路由器的位置。你能分享你呼叫路由器的部分吗。navTo()…是的,从ajax加载数据不是问题。但是,在这种情况下,您不应该将要绑定到下一个视图的对象的键或URL传递给下一个视图而不是索引吗?使用索引背后有什么具体原因吗?Hi Nandan!我将locationId传递为
locationId:oItem.getBindingContext(“locationListModel”).getPath().substr(7)
现在,路线是
http://localhost:8000/webapp/test/testStandalone.html#/locationlist/0
。所以最好现在就阅读。我可以通过在XML视图中使用
{locationListModel>locationName}
来修复它。感谢您的帮助!我非常感谢!