使用sencha touch,我想将我的数组列表数据存储在localStorage中,如图所示。
onStore刷新功能,如下图所示
我在BookStore刷新功能上将简单数据存储为LocalStorage中的Like Date,Id,Name。但是找不到将arrayObject直接存储到localStorage的方法。
答案 0 :(得分:1)
我不确定我完全理解你的问题..
如果您想在本地商店中存储javascript对象,可以使用JSON.stringify()
方法将javascript对象转换为字符串。
var testString = JSON.stringify(testObj); //Converts testObject to Json string.
localStorage.testString = testString; // Stores testString into local storage.
您可以从本地存储获取testString并通过
将其转换为javascript对象var testObj = JSON.parse(localStorage.testString);
或者您可以使用
Ext.encode(); // Encodes an Object, Array to String.
Ext.decode(); // Decodes (parses) a JSON string to an object.
答案 1 :(得分:0)
您可以存储完整的对象,但如果您只想存储主题,则需要创建新模型。 定义用于存储主题的模型,或者您可以存储您正在获得的完整对象。
Ext.define('Demo.model.Subjects', {
extend: 'Ext.data.Model',
config: {
fields: [
{ name: 'id', type: 'int' },
{ name: 'Subjects', type: 'auto' }
]
}
});
定义本地商店
Ext.define('Demo.store.MySubjectLocalStore', {
extend: 'Ext.data.Store',
config: {
storeId: 'mySubjectLocalStore',
model: 'Demo.model.Subjects',
autoLoad: true,
clearOnPageLoad: true,
proxy: {
type: 'localstorage',
id: 'demo-mySubjects-local-store'
}
}
});
将数据存储在本地商店
var subjectsLocal = Ext.getStore('mySubjectLocalStore');
//loop to get your subjects array from main Object then add each array to localstore
//loop start
var subjects = //get it from parent object inside loop
var subjectsModel = Ext.create('Demo.model.Subjects', {
Subjects : subjects,
id: //use integer so that you can get by this id when you retrive it
});
subjectsLocal.add(subjectsModel);
//loop End
subjectsLocal.sync();