【发布时间】:2015-05-23 04:16:52
【问题描述】:
我正在使用 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 所做的事情,我在这方面取得了很大的成功)?这是一个错误,也许?
【问题讨论】:
-
对于404错误:商店中的模型声明不应该只是简短
model : Load吗? -
有趣。这个我没试过。我曾假设(可能是错误的)我必须提供完整的命名空间。
标签: extjs model local-storage store