OData 模型的绑定路径语法
Binding Path Syntax for OData Models
我在这里尝试绑定 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"
您在 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
id="BoMSet"
headerText="BoM"
</List>
我在这里尝试绑定 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"
您在 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
id="BoMSet"
headerText="BoM"
</List>