сообщение extjs с параметром - PullRequest
1 голос
/ 16 декабря 2010

Я создаю хранилище данных, которое будет загружать данные с сервера. Мне интересно, как я могу передать параметры прокси.

var dataStore = new Ext.data.JsonStore({
proxy:'productSearch.php',
root:'products',
fields:['title', 'image', 'inStock', 'price', 'category', 'manufacturer']
});

1 Ответ

7 голосов
/ 16 декабря 2010

Я обычно делаю это так

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'},
]

Две вещи здесь:

  1. Я присваиваю типы, чтобы в хранилище загружались правильные типы данных.Он даже преобразует строковые даты в объекты JavaScript Date ().

  2. Я использую параметр 'mapping', чтобы указать, какие поля из JSON должны сопоставляться с какими полями в хранилище.Если по какой-либо причине формат JSON изменяется, мне нужно сделать только одно изменение.

...