我正在尝试绑定(bind)某些类别的产品,在每个类别中都有产品的扩展,首先我列出了默认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 的一个实例。正如您从 API 文档中看到的那样,StandardListItem 没有聚合“项目”。而不是调用
sCont.bindAggregation("items","data>"+sPath,sCats);
您应该尝试像这样绑定(bind)相应列表的项目聚合:
list.bindAggregation("items",...);
我可以在您的代码片段中看到您甚至在第二行中检索了列表:
var list = sap.ui.getCore().byId("listId");
关于javascript - 元素 sap.m.StandardListItem#subcatId 中不存在聚合 "items",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33973458/