假设我们有以下结构:本地存储崩溃模型定义?
model_Projects拥有一个model_Category数组。 每个model_Category都拥有一个model_SubCategory数组。
我实际上有一个model_Projects的商店,它有一个localStorage代理。
发生的情况是,当我加载同步()和加载()我的model_Projects存储时,在每个model_Projects中,我的model_Category数组的大小合适,并且每个单元格都包含一个对象。
什么是错的是,每个这些对象都没有一个model_Category对象...
这里是我的console.log()的一个项目
console.log('\n' + this.get('strTitle') + ' - ' + this.get('strType'));
console.log(this.get('strVersion'));
console.log('Event will be on : ' + this.get('dateOfProject') + '\n');
var arrCategory = this.get('arrCategory');
var arrSub;
var arrType;
for(i in arrCategory)
{
console.log(arrCategory[i].get('strTitle') + ' Total : ' + arrCategory[i].get('numTotal') + '\n');
//Each Sub Category
arrSub = arrCategory[i].get('arrSubCategory');
for(j in arrSub)
{
if(arrCategory[i].get('arrSubTotal') === undefined)
console.log('\t' + arrSub[j].get('strTitle'));
else
console.log('\t' + arrSub[j].get('strTitle') + '\t SubTotal : ' + arrCategory[i].get('arrSubTotal')[j]);
arrType = arrSub[j].get('arrType');
arrValue = arrSub[j].get('arrValue');
arrCOFactor = arrSub[j].get('arrCOFactor');
for(var k=0; k<arrType.length; k++)
{
if(arrValue === undefined)
console.log('\t\t' + arrType[k] + '\t\t Value : ' + 'NA' + '\t\t COFactor : ' + arrCOFactor[k]);
else
console.log('\t\t' + arrType[k] + '\t\t Value : ' + arrValue[k] + '\t\t COFactor : ' + arrCOFactor[k]);
}
console.log('');
}
}
console.log('\n'+this.get('strTitle') + ' - ' + this.get('strType') + '\n');
下面的函数是一个project.show ()在创建后立即从项目商店中读取。
这里是我所得到的,当我project.show()后加载项目店
如果我们打开错误,我们得到以下行崩溃:
console.log(arrCategory[i].get('strTitle') + ' Total : ' + arrCategory[i].get('numTotal') + '\n');
看起来像arrCategory [i]不再是类别模型... wtf
会有人知道发生了什么事吗?
omg所以我的系统注定了...... – Fawar
代理应负责维护仅模型数据,并从存储中的数据恢复模型对象。您遇到问题是因为您在记录(项目)的** data **中保留了一些模型对象(类别)。您应该配置['HasMany'](http://docs.sencha.com/touch/2.2.1/#!/api/Ext.data.association.HasMany)关联,而不是将原始对象放在那里。做好准备,第一次有点困难...... – rixo
有多少人能帮助我? – Fawar