Ext JS - Store vs. JsonStore

时间:2016-04-20 15:15:04

标签: javascript json extjs

在比较了这两个类的文档后,我很好奇为什么会使用Ext.data.JsonStore而不是它的超类:Ext.data.Store。该文档陈述了关于JsonStore的以下内容:

  

小助手类,可以更轻松地从JSON数据创建Ext.data.Stores。 JsonStore将自动配置Ext.data.reader.Json。

然后,文档将显示JsonStore的典型配置,如下所示:

var store = new Ext.data.JsonStore({
    // store configs
    autoDestroy: true,
    storeId: 'myStore',

    proxy: {
        type: 'ajax',
        url: 'get-images.php',
        reader: {
            type: 'json',
            root: 'images',
            idProperty: 'name'
        }
    },

    //alternatively, a Ext.data.Model name can be given (see Ext.data.Store for an example)
    fields: ['name', 'url', {name:'size', type: 'float'}, {name:'lastmod', type:'date'}]
});

上面的代码明确地将读者类型设置为' json' - 不会在JsonStore中隐含json类型吗?这个配置对我来说似乎没有什么不同于某人在Ext.data.Store实例中配置代理来读取JSON文件的方式。

我是否误解了Ext.data.JsonStore的使用?如果没有,使用Ext.data.Store有什么好处?

谢谢!

1 个答案:

答案 0 :(得分:1)

查看Ext.data.JsonStore的定义:

Ext.define('Ext.data.JsonStore',  {
    extend: 'Ext.data.Store',
    alias: 'store.json',
    requires: [
        'Ext.data.proxy.Ajax',
        'Ext.data.reader.Json',
        'Ext.data.writer.Json'
    ],

    constructor: function(config) {
        config = Ext.apply({
            proxy: {
                type  : 'ajax',
                reader: 'json',
                writer: 'json'
            }
        }, config);
        this.callParent([config]);
    }
});