我正在创建一个将从服务器加载数据的数据存储.我想知道如何将参数传递给代理.
var dataStore = new Ext.data.JsonStore({
proxy:'productSearch.php',
root:'products',
fields:['title', 'image', 'inStock', 'price', 'category', 'manufacturer']
});
Run Code Online (Sandbox Code Playgroud)
我通常这样做
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'
}
});
Run Code Online (Sandbox Code Playgroud)
我也更喜欢定义这样的字段:
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'},
]
Run Code Online (Sandbox Code Playgroud)
这里有两件事:
我分配了类型,以便为存储加载正确的数据类型.它甚至会将字符串日期转换为JavaScript Date()对象.
我使用'mapping'参数来告诉JSON中哪些字段与商店中的哪些字段匹配.如果由于任何原因JSON格式发生变化,我只需要在此处进行一次更改.
| 归档时间: |
|
| 查看次数: |
4444 次 |
| 最近记录: |