将 "one to many" OData 关联绑定到 UI5 中的聚合

Bind "one to many" OData association to aggregation in UI5

我正在从 OData 服务读取一些数据。在控制器中,我执行以下操作:

this.getView().bindElement({
  path: "/HeaderData(key1='key1',key2='key2')",
  parameters: { expand: 'toItems' }
});

数据读取正确,控制台内的模型如下所示:

HeaderData(key1='key1',key2='key2'): {
  HeaderField1: "value1"
  HeaderField2: "value2"
  toItems: {__list: Array(2)}
}

现在,我想将 "toItems" 集合中的条目绑定到 table。 我尝试了以下方法,但它不起作用,因为 "toItems" 是一个集合。

<Table items="{
  path: '/HeaderData',
  parameters: { expand: 'toItems' }
}">

这个也不行:

<Table items="{
  path: '/HeaderData/toItems'
}">

如何正确绑定物品?无法通过 ID 访问 table,因此绑定必须在 XML 视图内。

只需将导航 属性 绑定到聚合:

<Table items="{toItems}">

确保在绑定路径的开头省略 /,因为它应该 相对 解析为绑定实体/上下文(由 bindElement).要了解更多信息,请参阅主题 Binding Path.

ODataListBinding 将相应地向这些项目发送请求(如果它们还不可用)。