Extjs 通过store';从JSON访问其他属性;s荷载法
我有一个通过JSON存储加载数据的网格,但是除了记录本身之外,我还需要访问其他一些属性。下面是一个JSON数据的示例:Extjs 通过store';从JSON访问其他属性;s荷载法,extjs,extjs6,Extjs,Extjs6,我有一个通过JSON存储加载数据的网格,但是除了记录本身之外,我还需要访问其他一些属性。下面是一个JSON数据的示例: { success: true, records: [ {id: 1, name: 'bob'}, {id: 2, name: 'fred'} ], extraProperty: 'foo' } 我需要在加载网格数据时访问该extraProperty。所以我想我会想要一个回调,就像这样: store.load({
{
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()的私有方法。它在Chrome中返回一个对象,该对象具有responseJson属性,但在IE中,它具有需要解码的responseText属性。所以我可以处理这两种情况,但由于它是一种私有方法,我不想一开始就依赖它。有什么想法吗?使用阅读器上的
keepRawData
config
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'
}
}