我有一个创建表
的JSON视图{
"Type": "sap.ui.core.mvc.JSONView",
"content": [
{
"Type": "sap.ui.table.Table",
"id": "operationTable",
"columns": [
{
"Type": "sap.ui.table.Column",
"label": "Operation Name",
"template": {
"Type": "sap.ui.commons.TextView",
"text": "{name}"
}
}
]
}
]
}
现在,我正在尝试使用JSON模型将Rows绑定到表:
{
binding: {
operationX:
{
name: "First Object"
},
operationY: {
name: "Second Object"
}
}
}
我想将操作名称绑定到Tablerows。这就是我试图实现目标的方式:
var oModel = new sap.ui.model.json.JSONModel();
oModel.setData(jsonModel); //The Json-Model one code block above
var oTable = oView.byId("operationTable");
oTable.setModel(oModel);
oTable.bindRows("/binding/"); //This is the problem
问题是绑定不是一个对象数组,而是一个带对象的对象。我无法像写作时那样访问特定的KEY-VALUE-Pair
oTable.bindRows("/binding/operationX");
/ binding / {secondPart} 的第二部分必须是可更改的。
我怎样才能做到这一点?
答案 0 :(得分:2)
列表绑定需要一个Array作为底层数据结构(至少在我必须使用的1.26版本中)。试试这个example。
答案 1 :(得分:1)
所以,好像你无法绑定这个JSON:
{
binding: {
operationX:
{
name: "First Object"
},
operationY: {
name: "Second Object"
}
}
}
所以你必须将它解析为JSON-Array,如下所示:
function parseToArray(obj){
var myArray = new Array();
for(var key in obj){
myArray.push(obj[key]);
}
return myArray;
}
不幸的是,您无法将 sap.ui.core.ListItem 绑定到表,就像使用DropDownBox
一样