我在这里试图绑定Odata服务以从SAP ABAP中获取信息。
尽管我正在使用相对绑定路径,但无法获得预期的信息。
Controller.js
var oListItem= this.getView().byId("BoMSet");
oListItem.bindElement("invoice>/ProductHeadSet('12345')/ProductHead2BOM");
View.xml
<List id="BoMSet"
headerText="BoM">
<items>
<ObjectListItem intro="{invoice>Material}"
title="{invoice>BomNumber}">
</ObjectListItem>
</items>
manifest.json
"dataSources": {
"invoiceRemote": {
"uri": "http://abc/sap/opu/odata/SAP/xyz/",
"type": "OData",
"settings": {
"odataVersion": "2.0"
}
}
模型
"invoice": {
"dataSource": "invoiceRemote"
答案 0 :(得分:0)
您在List上使用bindElement,因此您仍然需要在View上指定项目绑定。
我认为您的ProductHeadSet中有一个列表,它是您要在UI上显示的列表。
例如,如果ProductHeadSet有一个名为Products的列表,则您的视图应如下所示:
<List
id="BoMSet"
headerText="BoM"
items="{
path: '/Products'
}">
<items>
<ObjectListItem
intro="{invoice>Material}"
title="{invoice>BomNumber}">
</ObjectListItem>
</items>
</List>
您还可以采用另一种方法,并在控制器中调用bindItems:
var oListItem= this.getView().byId("BoMSet");
oListItem.bindItems({
path : "invoice>/ProductHeadSet('12345')/products",
template : new sap.m.StandardListItem({
title: "{invoice>BomNumber}",
description: "{invoice>Material}"
})
});
您的视图将只包含List声明:
<List
id="BoMSet"
headerText="BoM"
</List>