ExtJS 本地存储代理 model/store 问题

ExtJS localstorage proxy model/store issue

我正在使用 ExtJS 5.1.0 并且 运行 遇到了一个奇怪的问题。

我有以下型号:

Ext.define('cardioCatalogQT.model.Load', {
    extend: 'Ext.data.Model',

    config:{
        idProperty: 'id',
        fields: [
            {name: 'key', type: 'string'},
            {name: 'comparator', type: 'string'},
            {name: 'value', type: 'string'},
            {name: 'type', type: 'string'}
        ]

    }
});

商店:

Ext.define('cardioCatalogQT.store.Payload', {
    extend: 'Ext.data.Store',
    alias: 'store.Payload',
    // add package.framework=ext to .sencha/app/sencha.cfg
    config:{

        model: 'cardioCatalogQT.model.Load',
        storeId: 'Payload',
        autoLoad: true,

        proxy: {
            type: 'localstorage'
        }
    }
});

当我向商店添加记录时:

var payload = Ext.create('cardioCatalogQT.store.Payload');

payload.add({
    type: 'dx',
    key: item.data.code,
    comparator: 'eq',
    value: item.data.description
});

payload.sync();

localstorage 中的数据看起来像附图中除#7 和#11 之外的所有记录

但是,当我像这样将字段元素添加到商店时:

Ext.define('cardioCatalogQT.store.Payload', {
    extend: 'Ext.data.Store',
    alias: 'store.Payload',
    // add package.framework=ext to .sencha/app/sencha.cfg
    config:{
        idProperty: 'id',
        fields: [
            {name: 'type', type: 'string'},
            {name: 'key', type: 'string'},
            {name: 'comparator', type: 'string'},
            {name: 'value', type: 'string'}
        ] ,

        //model: 'cardioCatalogQT.model.Load',
        storeId: 'Payload',
        autoLoad: true,

        proxy: {
            type: 'localstorage'
        }
    }
});

我在 7 和 11 中得到了想要的结果。

另一个问题是,我没有为模型记录提供实际名称,而是为模型实例获取了非常无用的名称 ext-data-proxy-localstorage-N。

此外,我在通过商店引用模型时遇到此错误:

[错误] 加载资源失败:服务器响应状态 404(未找到)(cardioCatalogQT.model.Load,第 0 行)

我已经完成了 sencha 应用程序构建,没有出现任何错误。

知道我做错了什么吗(我基本上是在做我用 Sencha Touch 做的事情,我在那里取得了很大的成功)?也许这是一个错误?

ExtJS 的问题,要在商店中获得所需的名称,您必须在代理中指定和 ID:

 proxy: {
            type: 'localstorage',
            id  : 'payload'
        }

现在,我的本地存储中的模型实例已按需显示,我可以使用标准方法(如 findRecord)查询它们。好时光!

故事的寓意:ExtJS 的行为与 Touch 不同