gpt4 book ai didi

sapui5 - 绑定(bind)聚合相对于父选择

转载 作者:行者123 更新时间:2023-12-01 13:48:52 25 4
gpt4 key购买 nike

我有一个 XML View 和一个 Controller 。

我的模型数据绑定(bind)到 sap.m.Table。问题是我必须将 "items" 绑定(bind)到我模型的某个数组元素。

这些是我的模型数据:

[{
"type": "01",
"items": [{
"date": "20150720",
"amount": 53.20,
"paytype": "Cash"
}, {
"date": "20150720",
"amount": 23.20,
"paytype": "Cash"
}]
}, {
"type": "02",
"items": [{
"date": "20150720",
"amount": 515.6,
"paytype": "Credit Card"
}, {
"date": "20150720",
"amount": 3,
"paytype": "Something else"
}]
}]

我想根据我的 Select 控件的选择更改将我的表绑定(bind)到 “items” 属性,该控件具有诸如“type”属性绑定(bind)的字段。

如何写我的表的项目属性的路径? "data>/items/" 无效。

我想到了将路径值绑定(bind)到外部模型的解决方案pathModel 并根据选择对象的选择更改更新其属性,如下所示:

我的看法:

<Table
id="dataTable"
items="{path>pathUrl}"
>

我的 Controller :

newPath = "data>/"+ countPath +"/items/";
currentView.getModel("path").setProperty("/pathUrl", newPath);

但它也不起作用。

最佳答案

该问题描述了 Element Binding 概念的典型用例.

查看

<Select
forceSelection="false"
change=".onSelectionChange"
items="{myModel>/}"
>
<core:Item
key="{myModel>typeKey}"
text="Type {myModel>type}"
/>
</Select>
<Table id="myTable" items="{myModel>items}">
<items>
<ColumnListItem>
<Text text="{myModel>paytype}"/>
<Text text="{myModel>amount}"/>
</ColumnListItem>
</items>
<!-- ... -->
</Table>

Controller

onSelectionChange: function(event) {
const selectedItem = event.getParameter("selectedItem");
this.byId("myTable").bindElement({
path: selectedItem.getBindingContext("myModel").getPath(), // e.g. "/1"
model: "myModel",
});
},

一旦从 Select 控件中选择了一个项目,就会调用 onSelectionChange 并将所选项目作为参数。该项目包含一个绑定(bind)上下文 API 可以通过 .getBindingContext(/*modelName*/) 获取。从中调用 getPath() 将返回绑定(bind)数据的绝对路径。在 JSONModel 的情况下,路径将类似于索引,例如 "/0""/1" 等。在 ODataModel 的情况下; "/ProductSet('123')" 例如。

然后应将绝对绑定(bind)路径分配给 API bindElement API 元素目标中的所有相对 绑定(bind)路径,例如“{myModel>items}”,最终可以解决向 UI 显示数据的问题。


这是一个使用您的数据的工作示例:https://embed.plnkr.co/FOEY1JZIKFAJTApe/ .

enter image description here

关于sapui5 - 绑定(bind)聚合相对于父选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33522732/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com