0

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

有任何想法吗?

任何帮助,将不胜感激。

4

1 回答 1

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"} 
});

于 2015-02-27T19:18:52.967 回答