您好我发现了许多关于从sencha中加载数据的示例。 我尝试用笔记制作一个列表,第二步我希望能够在我的数据库中添加(保存)一个注释。我试试本地存储。
现在我从Arraystore中的数组加载数据。 我应该在哪里设置代理? (在商店或模特中?)
我怎么能在我的商店中插入数据? 我在我当前的数组商店尝试了类似的东西,但没有运气: (这是通过按代码运行的代码):
MyArrayStore.add({title:"newnote",narrative:"bla bla bla",date:now,id:noteid});
MyArrayStore.sync();
浏览器控制台出错: 未捕获的ReferenceError:未定义MyArrayStore 我应该做一个我的商店或其他什么的实例?
我的模特是这样的: thanx的答案。我在建筑师那里试试。 我的模特是这样的:
Ext.define('MyApp.model.NoteModel', {
extend: 'Ext.data.Model',
alias: 'model.NoteModel',
config: {
fields: [
{
name: 'id',
type: 'int'
},
{
name: 'date',
type: 'date'
},
{
name: 'title',
type: 'string'
},
{
name: 'narrative',
type: 'string'
}
],
proxy: {
type: 'localstorage',
id: 'local'
}
}
});
我的商店是这样的:
Ext.define('MyApp.store.MyArrayStore', {
extend: 'Ext.data.Store',
requires: [
'MyApp.model.NoteModel'
],
config: {
data: [
{
title: 'Note 1',
narrative: 'test1 1'
},
{
title: 'Note 2',
narrative: 'narrative 2'
},
{
title: '3 ertyyh',
narrative: 'narrative 3'
},
{
title: '4 asdf',
narrative: 'narrative 4'
},
{
title: 'Note 5',
narrative: 'narrative 5'
},
{
title: 'weadf',
narrative: 'narrative 6'
}
],
model: 'MyApp.model.NoteModel',
storeId: 'MyArrayStore'
}
});
答案 0 :(得分:3)
您应该在模型中或商店中设置代理。 以下是如何在您的模型中执行此操作。
Ext.define('MyModel', {
extend: 'Ext.data.Model',
config: {
fields: ['field1'],
proxy: {
type: 'localstorage',
id : 'my-model-localstorage-id'
}
});
也可以在您的商店中完成相同的操作。
之后,鉴于'MyArrayStore'是这样一个商店的实例,你建议的代码应该可以正常工作。
希望这有帮助。
答案 1 :(得分:2)
如果您想访问您的商店(您在问题中更新的商店),那么您可以使用:
Ext.StoreManager.get('MyArrayStore')
因此,例如,您想要执行的操作可以通过以下方式完成:
var store=Ext.StoreManager.get('MyArrayStore');
store.add({title:"newnote",narrative:"bla bla bla",date:now,id:noteid});
store.sync();