經過數小時的努力,我需要您的幫助。Sencha 2:在LocalStorage中與hasMany關聯同步模型
我必須模型:項目和任務。一個項目有許多任務和一個任務屬於一個項目。如果您不使用商店來保存這些模型,那麼Everywhere運作良好。
我想將任務和項目保存在兩個存儲(TaskStore和ProjectStore)中。這些商店使用LocalStorage代理。
我嘗試了很多東西,最合乎邏輯的是:
Ext.define('MyApp.model.Task', {
extend: 'Ext.data.Model',
config: {
fields: [
{
name: 'name',
type: 'string'
},
{
dateFormat: 'd/m/Y g:i',
name: 'start',
type: 'date'
},
{
dateFormat: 'd/m/Y g:i',
name: 'end',
type: 'date'
},
{
name: 'status',
type: 'string'
}
],
belongsTo: {
model: 'MyApp.model.Project'
}
}
});
Ext.define('MyApp.model.Project', {
extend: 'Ext.data.Model',
alias: 'model.Project',
config: {
hasMany: {
associationKey: 'tasks',
model: 'MyApp.model.Task',
autoLoad: true,
foreignKey: 'project_id',
name: 'tasks',
store: {storeId: "TaskStore"}
},
fields: [
{
name: 'name',
type: 'string'
},
{
dateFormat: 'd/m/Y',
name: 'start',
type: 'date'
},
{
dateFormat: 'd/m/Y',
name: 'end',
type: 'date'
}
]
}
});
這是我的「主」:
var project = Ext.create("MyApp.model.Project", {name: "mojo", start: "17/03/2011", end: "17/03/2012", status: "termine"});
var task = Ext.create("MyApp.model.Task", {name: "todo", start: "17/03/2011 10:00", end: "17/03/2012 19:00", status: "termine"});
project.tasks().add(task);
Ext.getStore("ProjectStore").add(project);
項目被添加到存儲,但任務沒有。爲什麼?!
已經嘗試過,即使這兩個店都設置爲更改同步。 – Alytrem 2012-04-23 12:49:01
這是一個很好記住的問題,但這不是解決問題的方法,我認爲問題是ST2的一個限制。 – 2012-11-26 05:03:08