我试图绑定某些类别的产品,在每个类别中都有一个产品扩展,首先我列出了默认oData服务只读http://services.odata.org/V3/OData/OData.svc
中的类别,然后单击类别中的一个,以获取其路径(返回类似:Category(1)
或Category(2)
等),并用它来调用该类别的产品,聚合"items"在Element sap.m.StandardListItem#subcatId中不存在我做错了什么?
以下是获取类别的sPath然后尝试检索该类别的产品列表的代码:
var app = sap.ui.getCore().byId("appId");
var list = sap.ui.getCore().byId("listId");
var sItem = list.getSelectedItem();
var sPath = sItem.oBindingContexts.data.sPath;
var sCont = sap.ui.getCore().byId("subcatId");
var sCats = new sap.m.StandardListItem({
parameters: {expand: "Products"},
title: "{data>Name}"
})
sCont.bindAggregation("items","data>"+sPath,sCats);
api:
http://services.odata.org/V3/OData/OData.svc/Categories
http://services.odata.org/V3/OData/OData.svc/Products
http://services.odata.org/V3/OData/OData.svc/Categories?$expand=Products
感谢大家的帮助!
sCont似乎是sap.m.StandardListItem的实例。StandardListItem没有聚合"项",正如您从API文档中看到的那样。而不是调用
sCont.bindAggregation("items","data>"+sPath,sCats);
您应该尝试绑定相应列表的项目聚合,如下所示:
list.bindAggregation("items",...);
我可以在你的代码片段中看到,你甚至检索到了第二行的列表:
var list = sap.ui.getCore().byId("listId");