如何从JSON对象将数据设置为Sencha Touch中的List

时间:2014-07-03 06:33:17

标签: json sencha-touch-2.3

我想从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"

有什么想法吗?

任何帮助将不胜感激。

1 个答案:

答案 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;
&#13;
&#13;