ExtJS JsonStore not populating

本文关键字:populating not JsonStore ExtJS | 更新日期: 2023-09-27 17:51:20

我的JsonStore似乎没有填充。当我运行代码时,它会触发请求,并返回json。当我检查数据存储时,数据数组为空。

我错过了什么?谢谢。

我有这个JsonStore定义:

CCList.ListStore = new Ext.data.JsonStore({
    root: 'rows',
    idProperty: 'Id',
    fields: ['Id', 'Description'],
    autoLoad: true,
    proxy: new Ext.data.HttpProxy({
        method: 'GET',
        url: '/costcenters/getjson'
    }),
    listeners: {
        load: function (obj, records) {
            Ext.each(records, function (rec) {
                console.log(rec.get('Id'));
            });
        }
    }
});

尝试将其绑定到Ext.List

CCList.listPanel = new Ext.List({
            id: 'indexList',
            store: CCList.ListStore,
            itemTpl: '<div class="costcenter">{Id}-{Description}</div>'
            }
        });

我的url返回这个json:

{ "rows" : [ 
      { "Description" : "Jason",
        "Id" : "100"
      },
      { "Description" : "Andrew",
        "Id" : "200"
      }          
    ] }

ExtJS JsonStore not populating

仅供参考,您不是在使用ExtJS,而是在使用Sencha Touch,它们是不同的,所以您将来澄清这一点很重要。

Ext.setup({
    onReady: function(){
        Ext.regModel('CostCenter', {
            idProperty: 'Id',
            fields: ['Id', 'Description']
        });
        var store = new Ext.data.Store({
            model: 'CostCenter',
            autoLoad: true,
            proxy: {
                type: 'ajax',
                method: 'GET',
                url: 'data.json',
                reader: {
                    type: 'json',
                    root: 'rows'
                }
            },
            listeners: {
                load: function(obj, records){
                    Ext.each(records, function(rec){
                        console.log(rec.get('Id'));
                    });
                }
            }
        });
        new Ext.List({
            fullscreen: true,
            store: store,
            itemTpl: '<div class="costcenter">{Id}-{Description}</div>'
        });
    }
});