0

JSON オブジェクトからコントローラーの Dataview.list に Data を設定したい。

これが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 に答える