ExtJS JsonStore 未填充

Posted

技术标签:

【中文标题】ExtJS JsonStore 未填充【英文标题】:ExtJS JsonStore not populating 【发布时间】:2011-04-21 23:38:54 【问题描述】:

我的 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>'
            
        );

我的网址返回这个 json:

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

【问题讨论】:

【参考方案1】:

仅供参考,您不是在使用 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>'
        );

    
);

【讨论】:

非常感谢。那么 JsonStore 对 Sencha Touch 无效吗? 它在那里,但数据包的工作方式现在有点让它多余,你最好坚持我上面概述的方法。

以上是关于ExtJS JsonStore 未填充的主要内容,如果未能解决你的问题,请参考以下文章

EXTJS 在异步获取后将 JSONStore 加载到网格

ExtJS 4.1 - 改变 JsonStore 的值

如何使用 ExtJS 访问从 JsonStore 获取的值?

如何在 ExtJS 3.4 中添加/合并多个 Ext.data.JsonStore

使用 extjs 3.4 panel + dataview + jsonstore 检索数据

ExtJs JSONStore 输入数据格式