访问通过商店的加载方法接收的 JSON 的附加属性
Accessing additional properties from JSON received through store's load method
我有一个通过 JSON 存储加载数据的网格,但是除了我需要访问的记录本身之外,还有一些其他属性。这是 JSON 数据的示例:
{
success: true,
records: [
{id: 1, name: 'bob'},
{id: 2, name: 'fred'}
],
extraProperty: 'foo'
}
我需要在加载网格数据时访问该 extraProperty。所以我假设我想要一个回调,像这样:
store.load({
callback: function (records, operation, success) {
//somehow access extraProperty here
}
});
我不确定在该回调中要做什么。操作变量是一个 Ext.data.operation.Operation 对象,有一个名为 getResponse() 的私有方法。它 returns Chrome 中的一个对象具有 responseJson 属性,但在 IE 中它具有需要解码的 responseText 属性。所以我可以处理这两种情况,但由于它是一种私有方法,所以我一开始真的不想依赖它。有什么想法吗?
在 reader 上使用 keepRawData
配置。
store.load({
callback: () => {
const { extraProperty } = store.getProxy().getReader().rawData;
}
});
根据您的需要,您可能还想查看 preserveRawData
。
您是否在商店级别尝试过,如下所示
在 reader 配置部分的代理下
proxy: {
type: 'ajax',
actionMethods: {
read: 'GET'
},
headers: {
'Content-Type': 'application/json;charset=utf-8'
},
api: 'your url',
reader: {
extraProperty: 'extraProperty'
}
}
我有一个通过 JSON 存储加载数据的网格,但是除了我需要访问的记录本身之外,还有一些其他属性。这是 JSON 数据的示例:
{
success: true,
records: [
{id: 1, name: 'bob'},
{id: 2, name: 'fred'}
],
extraProperty: 'foo'
}
我需要在加载网格数据时访问该 extraProperty。所以我假设我想要一个回调,像这样:
store.load({
callback: function (records, operation, success) {
//somehow access extraProperty here
}
});
我不确定在该回调中要做什么。操作变量是一个 Ext.data.operation.Operation 对象,有一个名为 getResponse() 的私有方法。它 returns Chrome 中的一个对象具有 responseJson 属性,但在 IE 中它具有需要解码的 responseText 属性。所以我可以处理这两种情况,但由于它是一种私有方法,所以我一开始真的不想依赖它。有什么想法吗?
在 reader 上使用 keepRawData
配置。
store.load({
callback: () => {
const { extraProperty } = store.getProxy().getReader().rawData;
}
});
根据您的需要,您可能还想查看 preserveRawData
。
您是否在商店级别尝试过,如下所示
在 reader 配置部分的代理下
proxy: {
type: 'ajax',
actionMethods: {
read: 'GET'
},
headers: {
'Content-Type': 'application/json;charset=utf-8'
},
api: 'your url',
reader: {
extraProperty: 'extraProperty'
}
}