我的SAPUI5应用程序中有一个Json模型,我想将它绑定到一个表。我的表已经包含了列和项:比如3列和3行。
<table>
<columns>
<column></column><column></column><column></column>
</columns>
<items> <ColumnListItem> <cells></cells><cells></cells><cells></cells>
</ColumnListItem>
<ColumnListItem> <cells></cells><cells></cells><cells></cells>
</ColumnListItem>
<ColumnListItem> <cells></cells><cells></cells><cells></cells>
</ColumnListItem>
</items>
</table>
我想在不必指定text =“{/ field}”的情况下进行dinamically绑定,因为我的Json有3个数组,每个数组分别为1行且字段名称不相同。这可能吗?
例如:
var data = {
0: [ {firstname:"AA", lastname: "BB", Phone: "123"}, ],
1: [ {firstnameParent:"AB", lastnameParent: "BC", Phone: "456"},],
2: [ {firstnameGtParent:"ABC", lastnameGtParent: "CC", Phone: "555"},]}
现在我正在为每个细胞放置 文本= “{/ 0 /姓名}” 文本= “{/ 0 /姓氏}” 文本= “{/ 0 /电话}” 和下一行 文本= “{/ 1 / firstnameParent}” 文本= “{/ 1 / lastnameParent}” 文本= “{/ 1 /电话}” 但是这个例子有3个单元格,如果我有更多单元格,那听起来不是一个好主意。
有可能吗?绑定而不指定字段名?我尝试过不同的选择但没有任何成功。
预期的表格输出
col1 | col2 | col3
AA | BB | 123
AB | BC | 456
ABC | CC | 555
答案 0 :(得分:0)
如果您的数据看起来像您的示例,您可以使用格式化程序
来欺骗它按以下方式绑定您的行
items="{'/'}"
按照以下方式绑定您的单元格
text="{ path: '', formatter: 'formatFirstname' }"
text="{ path: '', formatter: 'formatLastname' }"
text="{phone}"
并将格式化程序添加到控制器
function formatFirstname(obj) {
for (let v in obj) {
if(obj.hasOwnProperty(v) && v.startsWith('firstname')) {
return obj[v]
}
}
}
function formatLastname(obj) {
for (let v in obj) {
if(obj.hasOwnProperty(v) && v.startsWith('lastname')) {
return obj[v]
}
}
}
(代码未经测试) 你明白了吗?这应该会给你你想要的结果