如何在 ExtJS 6 中响应成功的网格加载并检查响应?
How can I respond to a successful grid load in ExtJS 6 and check the response?
当我的网格通过 AJAX 代理加载时,我使用响应的 "message" 键传递异常的错误消息 或 可选的信息性消息成功加载。例如:
{
results: 100,
success: true,
rows: [ { ...data here... } ],
message: "Query took 2.2 milliseconds"
}
我在使用 ExtJS 4.x 和 5.0 时问了一个 similar question,我能够使用 Proxy 的 afterRequest
事件来查看响应、提取消息并显示它。
但这在 5.1 中被删除了,我似乎无法找出 6.0 中的等效项。我还从一个有非常相似问题的人那里找到了 ,但是扩展 Ext.data.proxy.Ajax 的公认答案在 6.0 中对我不起作用——它在调用 "this.callParent(arguments)".[=15 时放弃了=]
我已经在这上面工作了几个小时,在代理、reader、存储和网格配置上戳戳,并搜索 Google。与往常一样,6.0 的文档在涉及事件时毫无用处。
我能找到的唯一在 AJAX 加载成功时触发的事件是 Store 的 "load" 事件。不幸的是,商店无权访问代理处理的 JSON 响应,至少据我所知是这样。代码:
var ResultsDataStore = Ext.create("Ext.data.Store", {
listeners: {
load: function() { console.log("storeload"); }
},
proxy: ...
我怎样才能:
(1) 从商店的加载事件访问响应,或
(2) 监听可以访问响应中传递的消息的其他事件?
我建议使用 Reader 的 transform
配置选项:
var resultStore = new Ext.data.Store({
proxy: {
reader: {
type: 'json',
transform: function(data) {
var message = data.message;
...
return data;
}
}
}
});
在文档中查看更多信息:http://docs.sencha.com/extjs/6.0/6.0.0-classic/#!/api/Ext.data.reader.Reader-cfg-transform
当我的网格通过 AJAX 代理加载时,我使用响应的 "message" 键传递异常的错误消息 或 可选的信息性消息成功加载。例如:
{
results: 100,
success: true,
rows: [ { ...data here... } ],
message: "Query took 2.2 milliseconds"
}
我在使用 ExtJS 4.x 和 5.0 时问了一个 similar question,我能够使用 Proxy 的 afterRequest
事件来查看响应、提取消息并显示它。
但这在 5.1 中被删除了,我似乎无法找出 6.0 中的等效项。我还从一个有非常相似问题的人那里找到了 我已经在这上面工作了几个小时,在代理、reader、存储和网格配置上戳戳,并搜索 Google。与往常一样,6.0 的文档在涉及事件时毫无用处。 我能找到的唯一在 AJAX 加载成功时触发的事件是 Store 的 "load" 事件。不幸的是,商店无权访问代理处理的 JSON 响应,至少据我所知是这样。代码: 我怎样才能: (1) 从商店的加载事件访问响应,或 (2) 监听可以访问响应中传递的消息的其他事件?var ResultsDataStore = Ext.create("Ext.data.Store", {
listeners: {
load: function() { console.log("storeload"); }
},
proxy: ...
我建议使用 Reader 的 transform
配置选项:
var resultStore = new Ext.data.Store({
proxy: {
reader: {
type: 'json',
transform: function(data) {
var message = data.message;
...
return data;
}
}
}
});
在文档中查看更多信息:http://docs.sencha.com/extjs/6.0/6.0.0-classic/#!/api/Ext.data.reader.Reader-cfg-transform