Sencha touch Sencha Touch使用相同的Json维护不同的商店
我希望能够从相同的json维护不同的存储,其中每个存储的模型都是相同的。每个存储都需要根据其根属性分配进行更新。请参阅下面的示例json、存储和模型,在这种情况下,每个存储都将根据json的根属性值(类别1、类别2等)进行更新。目标是能够动态地将应用程序中的嵌套列表绑定到不同的存储,而不是调用setProxy来更改单个存储上的url设置。此外,json需要采用这种格式。谢谢你的帮助,请让我知道如果我可以提供澄清或回答任何问题 Json: 型号:Sencha touch Sencha Touch使用相同的Json维护不同的商店,sencha-touch,sencha-touch-2,Sencha Touch,Sencha Touch 2,我希望能够从相同的json维护不同的存储,其中每个存储的模型都是相同的。每个存储都需要根据其根属性分配进行更新。请参阅下面的示例json、存储和模型,在这种情况下,每个存储都将根据json的根属性值(类别1、类别2等)进行更新。目标是能够动态地将应用程序中的嵌套列表绑定到不同的存储,而不是调用setProxy来更改单个存储上的url设置。此外,json需要采用这种格式。谢谢你的帮助,请让我知道如果我可以提供澄清或回答任何问题 Json: 型号: Ext.define('MyApp.model.m
Ext.define('MyApp.model.myModel', {
extend: 'Ext.data.Model',
config: {
fields: [
{
name: 'name',
type: 'string'
},
{
name: 'status',
type: 'string'
},
{
name: 'displaytext',
type: 'string'
}
]
}
});
商店1、2、3等:
Ext.define('MyApp.store.storeCategory1', {
extend: 'Ext.data.TreeStore',
requires: [
'MyApp.model.myModel'
],
config: {
model: 'MyApp.model.myModel',
storeId: 'myStore',
autoLoad: false,
proxy: {
type: 'ajax',
url: '/path/to/file.json',
reader: {
type: 'json',
rootProperty: 'items'
}
}
}
});
我认为您最好的选择是使服务器请求独立于商店的代理。成功后,根据需要将数据拆分为不同的存储区。以这种方式预处理数据很好,特别是当您需要将一个大型数据响应拆分为多个数据存储时。例如:
Ext.Ajax.request({
url: 'path/to/file.json',
success: function(response){
// process server response here
var json = Ext.decode(response.responseText);
for(var i=0, l=json.items.length, i<l; i++){
// start distributing the data to your different stores here
}
}
});
Ext.Ajax.request({
url:'path/to/file.json',
成功:功能(响应){
//此处处理服务器响应
var json=Ext.decode(response.responseText);
对于(var i=0,l=json.items.length,i
Ext.Ajax.request({
url: 'path/to/file.json',
success: function(response){
// process server response here
var json = Ext.decode(response.responseText);
for(var i=0, l=json.items.length, i<l; i++){
// start distributing the data to your different stores here
}
}
});