Предположим, у нас есть структура:Определение модели локального хранилища данных?
model_Projects владеет массивом model_Category. Каждая модель_Категория владеет массивом model_SubCategory.
У меня на самом деле есть магазин model_Projects, который имеет localStorage Proxy.
Что происходит, когда я загружаю sync() и загружаю() мой магазин 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
Прокси-сервер должен заботиться о сохранении только данных моделей и восстановлении объектов модели из данных в хранилище. Вы сталкиваетесь с проблемой, потому что у вас есть некоторые объекты модели (Категория) в ** данных ** записи (Project), которую вы сохраняете. Вместо того, чтобы помещать туда необработанный объект, вы должны настроить ассоциацию ['HasMany'] (http://docs.sencha.com/touch/2.2.1/#!/api/Ext.data.association.HasMany).Будьте готовы, это немного сложно в первый раз ... – rixo
Как бы много помогли мне? – Fawar