Я обычно делаю это так
var dataStore = new Ext.data.JsonStore({
url: 'productSearch.php'
root: 'products',
baseParams: { //here you can define params you want to be sent on each request from this store
param1: 'value1',
param2: 'value2'
},
fields: [...]
});
dataStore.load({
params: { //here you can define params on 'per request' basis
param3: 'value3'
}
});
Я также предпочитаю определять поля следующим образом:
fields: [
{name: 'title', mapping: 'title', type: 'string'},
{name: 'image', mapping: 'image', type: 'string'},
{name: 'inStock', mapping: 'inStock', type: 'bool'},
{name: 'price', mapping: 'price', type: 'float'},
{name: 'category', mapping: 'category', type: 'int'},
{name: 'someDate', mapping: 'someDate', type: 'date', dateFormat: 'Y-m-d'},
]
Две вещи здесь:
Я присваиваю типы, чтобы в хранилище загружались правильные типы данных.Он даже преобразует строковые даты в объекты JavaScript Date ().
Я использую параметр 'mapping', чтобы указать, какие поля из JSON должны сопоставляться с какими полями в хранилище.Если по какой-либо причине формат JSON изменяется, мне нужно сделать только одно изменение.