我想从JSON对象将数据设置为控制器中的Dataview.list。
这是json对象
Object {1: "Mercedes", 2: "Aston Martin", 3: "Ferrari", 4: "Lamborgini"}
现在这是我在文档中找到的内容:
Ext.create('Ext.List', {
fullscreen: true,
itemTpl: '{title}',
data: [
{ title: 'Item 1' },
{ title: 'Item 2' },
{ title: 'Item 3' },
{ title: 'Item 4' }
]
});
这对我不起作用,因为我有来自JavaScript函数的数据。该函数返回上面提到的JSON对象,然后我想做" setData"
有什么想法吗?
任何帮助将不胜感激。
答案 0 :(得分:0)
我们可以尝试首先将对象json转换为数组。然后我们可以将数组设置为列表视图或数据视图的数据。
请参阅以下代码。它有效。
Ext.define('ListDemo.view.Main', {
extend: 'Ext.Panel',
xtype: 'main',
requires: [
'Ext.dataview.List'
],
config: {
height:'900px',
items: [
{
xtype:'list',
height: '100%',
itemTpl: 'Hi {title}',
listeners:{
painted:function(){
var data=Ext.Object.getValues(myspace.obj);
var arr=[]
for(var i=0;i<data.length;i++){
arr.push({cars:data[i]})
}
Ext.ComponentQuery.query('list')[0].setItemTpl('{cars}')
Ext.ComponentQuery.query('list')[0].setData(arr)
}
}
}
]
}
},function () {
Ext.ns('myspace');
myspace.obj= {1: "Mercedes", 2: "Aston Martin", 3: "Ferrari", 4: "Lamborgini"}
});
&#13;