我有一个SAPUI5-App来查看来自DBMS的数据:DMBS < - > Java < - > jsp - > ajax - > JSONModel < - > SAPUI5我对具有这种结构的模型有疑问:
[
{
"key1": "value_a",
"key2": "value_b",
"key3": "value_c",
},
{
"key1": "value_d",
"key2": "value_e",
"key3": "value_f",
},
...
]
此数据存储在manifest.json中定义的模型中 . 现在我想在列表中显示这些数据 . 在我看来,我在createContent函数中定义一个列表并将其添加到我的页面 . 在控制器中,我尝试将数据绑定到listitem:
var oItemTemplate = new sap.m.InputListItem({
label : "{Model>}"
}),
oList.bindItems("Model>/", oItemTemplate);
在此尝试中,列表项的正确计数与模型中的对象数相对应 . 但在列表中只有“对象”
我的计划是在一个listitem中显示来自一个对象的合并文本:
-
第1项:"value_a value_b value_c"
-
第2项:"value_d value_e value_d"
-
......
现在我使用格式化程序作为标签 .
label : {
path : "Model>/",
formatter : function(data) {
return data;
}
}
根据此代码新显示的列表仍然是正确的项目数,每个项目包含所有项目
但我如何访问我的对象数据key1,key2和key3?我的所有尝试都没有成功
console.log(data.key1) -> undefined
console.log(data/key1) -> ReferenceError: key1 is not defined
有人可以帮我吗?
问候
麦克劳德
PS:如果我使用
var oItemTemplate = new sap.m.InputListItem({
label : "{Model>key1}"
});
oList.bindItems("Model>/", oItemTemplate);
然后value_a / value_d将显示在listitems上 . 但是我无法在格式化程序中使用它
在格式化程序中
formatter : function(data) {
return data;
}
data-object包含完整的JSON数据 . 但是没有像使用普通绑定那样的自动迭代
label : "{Model>key1}"
2 回答
在列表的图片中,您可以看到每一行都是一个对象列表 . 在此对象中,您可以访问键 . 所以在第一个中,你必须访问对象,如
data[0]
或data[1]
等 . 我想你错过了层次结构中的一步 .问题解决了!
https://archive.sap.com/discussions/thread/3517535