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}
来修复它。感谢您的帮助!我非常感谢!