对于SAPUI5应用程序我创建具有实体“查询” OData服务。 该服务本身工作正常。
为了扩大这一服务的顶部的第一SAPUI5应用程序,我把演练,以获得基本知识: https://sapui5.hana.ondemand.com/#/topic/2366345a94f64ec1a80f9d9ce50a59ef
现在,如果我通过我的一个服务并绑定为模型“询问”更换罗斯文服务,这一切工作正常,除了一两件事。 当点击一个列表项(“查询/>查询”),它加载该对象的通过数据的细节正确绑定- 但只有一次! 当回到主视图,并选择另一个列表项,它再次打开详细视图,但仍显示第一个列表项的详细信息,点击。
这似乎是当一个新的URL /路径,通过点击主视图的一个列表项开不刷新的详细视图。 但是,它的工作原理100%,在演练示例中的罗斯文OData服务我的环境。
是否有人有线索?
一些编码...
列表显示:
<mvc:View
controllerName="sap.ui.demo.wt.controller.InvoiceList"
xmlns="sap.m"
xmlns:mvc="sap.ui.core.mvc">
<List
class="sapUiResponsiveMargin"
width="auto"
items="{path : 'enquiry>/Enquiries'}">
<items>
<ObjectListItem
title="{enquiry>CompanyName}"
type="Navigation"
press="onPress">
</ObjectListItem>
</items>
</List>
</mvc:View>
名单控制器-火灾事件onPress一个列表项,当点击:
[..]
onPress: function (oEvent) {
var oItem = oEvent.getSource();
var oRouter = sap.ui.core.UIComponent.getRouterFor(this);
oRouter.navTo("detail", {
enquiryPath: oItem.getBindingContext("enquiry").getPath().substr(1)
});
}
[..]
详细视图:
<mvc:View
controllerName="sap.ui.demo.wt.controller.Detail"
xmlns="sap.m"
xmlns:mvc="sap.ui.core.mvc">
<Page
title="{i18n>detailPageTitle}">
<ObjectHeader
intro="{enquiry>EnquiryID}"/>
</Page>
详细控制器-上INIT火灾事件:
onInit: function () {
var oRouter = sap.ui.core.UIComponent.getRouterFor(this);
oRouter.getRoute("detail").attachPatternMatched(this._onObjectMatched, this);
},
_onObjectMatched: function (oEvent) {
this.getView().bindElement({
path: "/" + oEvent.getParameter("arguments").enquiryPath,
model: "enquiry"
});
}