我在sapui5中使用javascript。我有JSON数据{0:"A",1:"B",2:"C"}
。我想用数据填充列表。我怎么能这样做?
答案 0 :(得分:1)
由于您还没有显示您的列表定义,我只能专注于您问题中的数据,并且为了这个问题而假设您正在谈论一个List控件,例如,sap.m例如,图书馆。
您将面临的问题是,您的数据所具有的结构与绑定到聚合(例如List控件的项目聚合)时使用的预期结构不相符。你需要一个数组,而不是一个对象。
因此,这成为一个JavaScript数据问题。要将您的结构(我们假设在一个名为mData的变量中)转换为更适合聚合绑定的结构,您可以执行以下操作:
Object.keys(mData).map(function(k, i) { return { key: k, value: mData[k] }; })
会给你一个像这样的数组:
[ { key: '0', value: 'A' },
{ key: '1', value: 'B' },
{ key: '2', value: 'C' } ]
然后你可以绑定它。
如果您想要进一步帮助进行实际绑定,您需要在问题中多做一些努力,并提供您正在使用的控件定义。向我们展示代码,帮助我们帮助您。
答案 1 :(得分:0)
如果列表如下所示:
<List id="listId" items="{/}">
<StandardListItem title="{0}"/>
</List>
和
var oYourData = {
0: "A",
1: "B",
2: "C"
};
var oModel = new sap.ui.model.json.JSONModel(oYourData);
this.getView().byId("listId").setModel(oModel);
输出:
假设您的列表如下:
<mvc:View
controllerName="sap.m.sample.ListCounter.List"
xmlns:mvc="sap.ui.core.mvc"
xmlns="sap.m">
<List
headerText="Products"
items="{
path: '/ProductCollection'
}" >
<StandardListItem
title="{Name}"
counter="{Quantity}"/>
</List>
</mvc:View>
示例oData应如下所示:
var oData = {
"ProductCollection": [
{
"ProductId": "1239102",
"Name": "Power Projector 4713",
"Quantity": 3,
},
{
"ProductId": "2212-121-828",
"Name": "Gladiator MX",
"Quantity": 10,
},
{
"ProductId": "K47322.1",
"Name": "Hurricane GX",
"Quantity": 25,
},
{
"ProductId": "22134T",
"Name": "Webcam",
"Category": "Accessory",
"Quantity": 22,
},
{
"ProductId": "P1239823",
"Name": "Monitor Locking Cable",
"Category": "Accessory",
"Quantity": 30,
}
]
}
详细了解模型和绑定here