[英]How to use JSON Model Property as path for OData v4 List Binding in UI5
我尝试在 SAP UI5 中显示来自 OData V4 服务的对象列表。 我想使用 JSON 模型中的属性来设置列表项的绑定路径。
我以为我可以在表的项目聚合中设置路径:
<Table
items="{
path: '{appView>/dataPath}',
parameters: {
$count: true,
$$updateGroupId: 'peopleGroup'
}
}">...</Table>
当然还有定义和设置模型:
var oViewModel = new JSONModel({
dataPath: "/People"
});
this.getView().setModel(oViewModel, "appView");
由于某种原因,数据未加载。 甚至没有项目绑定到表:
oTable.getBinding("items"); // undefined
JSON 模型在控制器的 init 方法中定义。
任何人都知道为什么这不起作用?
根据我的理解,您想动态绑定路径。在这种情况下,您可以在没有任何路径的情况下在 xml 中编写模板,然后在控制器中编写绑定路径 XML 视图:
<Table id="tblData" items="{}"> <items> **template code ** </items> </Table>
控制器:
var oTable = this.getView().byId("tblData"),
sPath = this.getModel("appView").getProperty("/dataPath"),
oBinding = oTable.bindItems({path: sPath});
对于过滤器:
oBinding.filter(aFilters);
items: "{ path: '{appView>/dataPath}',
任何人都知道为什么这不起作用?
绑定定义仅适用于 ManagedObject 的属性和聚合。 由于path
只是一个普通的对象属性,尝试绑定任何东西都会被忽略。
既然你想将表绑定到的结果{appView>/dataPath}
绑定,我认为你需要使用表达式绑定来解决这个问题。
items="{
path: '{= ${appView>/dataPath}}',
parameters: {
$count: true,
$$updateGroupId: 'peopleGroup'
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.