如何从ExtJs中的现有商店对象中获取商店对象
问题描述:
我正在使用ExjJs 4.2。我有两个显示不同数据的网格。在一个JavaScript文件中,我必须包含这两个网格。我加载商店的第一网格状如何从ExtJs中的现有商店对象中获取商店对象
var store = Ext.create('Ext.data.Store', {
model: 'Writer.Person',
autoLoad: true,
proxy: {
type: 'ajax',
url : 'findPatientRecordAction',
reader: {
type: 'json',
successProperty: 'success',
root: 'data',
messageProperty: 'message'
},
writer: {
type: 'json',
encode: true,
root: 'data'
},
fields: ['id','notes', 'startDate', 'endDate'],
},
});
的JSON对象存储是这样的:
“数据”:[{ “ID”:35, “注意事项”: “hiii举报” ,“startDate”:“2013-04-30”,“endDate”:“2013-05-02”}]},“details”:[{“id”:14,“document”:“docpath12345”,“date “:”2013-04-28“}]
实际上,第一个网格将只显示JSON的'data'部分,第二个网格将显示JSON的'details'部分。所以理想情况下,我不应该为第二个网格再次加载商店对象(我现在在做什么)。我想申报一个商店类型变量并重用'store'(商店的'documents'部分)的值以成为对于第二格栅店作为
我加载所述第二存储截至目前这样
变种商店2 = Ext.create( 'Ext.data.Store',{
model: 'Writer.Document',
autoLoad: true,
proxy: {
type: 'ajax',
url : 'findPatientRecordAction',
reader: {
type: 'json',
successProperty: 'success',
root: 'details',
messageProperty: 'message'
},
writer: {
type: 'json',
encode: true,
root: 'details'
},
fields: ['id','document', 'date'],
},
});`.
在这两种情况下,我都会调用相同的动作并获得相同的JSON。
任何人都可以帮助我在这里,我怎么能声明另一个商店对象,并从现有的'商店'的价值,使我不应该加载相同的数据2次。
Regards:Dev
答
您可以使第一个商店的自动加载设置为false。然后在第二家店使用load事件记录注入到第一个使用存储活动代理数据:
var store2 = Ext.create('Ext.data.Store', {
model: 'Writer.Document',
autoLoad: true,
proxy: {
type: 'ajax',
url : 'findPatientRecordAction',
reader: {
type: 'json',
successProperty: 'success',
root: 'details',
messageProperty: 'message'
},
writer: {
type: 'json',
encode: true,
root: 'details'
},
fields: ['id','document', 'date'],
},
listeners: {
load: function(store, records, successful, eOpts){
if(successful)
{
store1.loadData(store.proxy.reader.rawData.data);
}
}
}
});
答
我要换:
listeners: {
load: function(store, records, successful, eOpts){
if(successful)
{
store1.loadData(**store.getRange()**);
}
}
}
这是一样的,我认为:
store.proxy.reader.rawData.data < - > store.getRange()
2fast4me;)无论如何,这就是答案1 – sra 2013-05-07 13:31:35
感谢Reimius为help..This工作完美吨他的方式我想... – Deba 2013-05-08 08:07:54