我使用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所做的事情,我取得了很大的成功)?这可能是一个错误吗?
答案 0 :(得分:0)
问题是针对ExtJS,要在商店中获取所需的名称,您必须在代理中指定和ID:
proxy: {
type: 'localstorage',
id : 'payload'
}
现在,我的localstorage中的模型实例正在显示,我可以使用标准方法查询它们,比如findRecord。好时光!
故事的道德:ExtJS的行为与Touch不同