代码之家  ›  专栏  ›  技术社区  ›  viraptor

将数据加载到JSonStore

  •  1
  • viraptor  · 技术社区  · 14 年前

    我正试图将一些简单的数据放入JSonStore,但它似乎不起作用。代码与示例基本相同:

    var itemListStore = new Ext.data.JsonStore({
       url: '/items/list',
       root: 'items',
       fields: [
          {name: 'id', type: 'string'},
          {name: 'name', type: 'string'},
       ]
    });
    itemListStore.load(); 
    ...
          items: [
          {
             xtype: 'listview',
             store: itemListStore,
             columnResize: false,
             flex: 1,
             columns: [
                {header: 'ID', dataIndex: 'id'},
                {header: 'Name', dataIndex: 'name'},
             ]
          }
    ...
    

    不幸的是,这行不通。表加载时没有行,存储区的计数为68(由服务器返回,通过 listview.getStore().getCount() )如果我用一个arraystore和一些静态数据替换jsonstore,我可以看到它们。

    结果来自 /items/list 只是:

    {"items":
        [{"id": "a", "name": "Some name"},
        {"id": "b", "name": "Some other name"}]
    }
    

    我该怎么解决这个问题?我怎么调试这个呢?

    编辑:更新记录计数信息

    1 回复  |  直到 14 年前
        1
  •  2
  •   Brandon Frohbieter    14 年前

                store: objPlanManagerStore = new Ext.data.Store({
                    autoLoad: true,
                    proxy: new Ext.data.HttpProxy({
                        url: '/your/url',
                        method: 'POST'
                    }),
                    reader: new Ext.data.JsonReader({
                        root: 'plans',
                        id: 'id',
                        fields: ['id', 'name', 'descr', 'tname', 'type', 'recurring']
                    }),
                    listeners: {
                        loadexception: function() {
                            Ext.Msg.alert('Title', 'msg');
                        }
                    }
                });