Extjs 存储未正确同步模型
这是我的商店Extjs 存储未正确同步模型,extjs,sencha-touch-2,sencha-architect,Extjs,Sencha Touch 2,Sencha Architect,这是我的商店 Ext.define('CarboZero.store.ProjectStore', { extend: 'Ext.data.Store', requires: [ 'CarboZero.model.ProjectT' ], config: { autoSync: true, model: 'CarboZero.model.ProjectT', storeId: 'projectstore', proxy: { type:
Ext.define('CarboZero.store.ProjectStore', {
extend: 'Ext.data.Store',
requires: [
'CarboZero.model.ProjectT'
],
config: {
autoSync: true,
model: 'CarboZero.model.ProjectT',
storeId: 'projectstore',
proxy: {
type: 'localstorage'
}
}
});
这是元素模型
Ext.define('CarboZero.model.Element', {
extend: 'Ext.data.Model',
config: {
fields: [
{
name: 'strName'
},
{
name: 'numValue'
},
{
name: 'numCOFactor'
},
{
name: 'strUIType'
},
{
name: 'boolLeaf'
},
{
name: 'arrElement'
}
]
}
});
它包含ProjectT模型,这些模型包含可以包含其他元素模型的元素模型。这是一棵树,其中节点和叶子是元素,根是项目
出于某种原因,我更新了项目中每个节点的值,我可以在应用程序中看到它确实正确地更改了所有内容,更改的内容在ProjectStore中得到了处理。在应用程序中,每件事都是应该有的
问题是当我的存储从缓存加载时。项目已加载,但修改的值不在其中,就像什么都没发生一样
我的项目在应用程序中随时都是完整和正确的,但是在store.load()之后,我可以看到更改不是sync(),autoSync()设置为true
我试图放置Project.setDirty()以强制更新。。。它没有做任何事情:S我认为您需要具有唯一id字段,以便localstorage autosync正常工作。唯一id用于什么?模型?商店?或LocalProxy?标识存储在存储中的每个记录。所以“在模型中”如果我不给一个,这些不是自动得到一个吗。。。我们可以对任何东西执行getId(),它会在应用程序中返回一个唯一的id。我不确定。您在资源管理器中看到它们了吗?Chrome应该显示您存储的本地数据。