javascript - 元素 sap.m.StandardListItem#subcatId 中不存在聚合 "items"

标签 javascript odata expand sapui5

我正在尝试绑定(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/

相关文章:

javascript - 谷歌地图需要很长时间才能加载

javascript - 某些 id 的 RemoveChild 错误

asp.net-mvc - 在 MVC 应用程序上公开 OData

c# - OData 服务不返回项目在数据库中的默认顺序

javascript - 如何将 URL 中的图像写入 PDFkit?

javascript - 如何使用 Javascript 检测特定时区是否处于 DST

odata - 在 CRUD 操作期间,Odata 适配器是否支持 "Patch"请求和 "$expand"查询?

css - 如何为移动设备设计 Accordion 菜单,其中扩展器元素也是链接

ios - 如何在 ios 中创建可扩展的表格 View ?