将 "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
将相应地向这些项目发送请求(如果它们还不可用)。
我正在从 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
将相应地向这些项目发送请求(如果它们还不可用)。