服务接口提供的数据格式没办法直接使用,可通过实现reader.transform函数进行预处理
样例
代码语言:javascript
复制Ext.create('Ext.data.Store', {
model: 'User',
proxy: {
type: 'ajax',
url : 'users.json',
reader: {
type: 'json',
transform: {
fn: function(data) {
// 对原始数据对象进行处理操作
return data;
},
scope: this
}
}
},
});
源码解析
代码语言:javascript
复制// data/reader/Json.js
...
getResponseData: function(response) {
...
return Ext.decode(response.responseText);
...
}
...
// data/reader/Reader.js
...
read: function(response, readOptions) {
...
result = this.getResponseData(response);
...
data = this.readRecords(result, readOptions);
...
}
...
readRecords: function(data, readOptions, internalReadOptions) {
...
transform = me.getTransform();
if (transform) {
data = transform(data);
}
...
}
...