当我的网格通过AJAX代理加载时,我会使用响应"消息"为成功加载传递异常或可选信息性消息的错误消息的密钥。例如:
{
results: 100,
success: true,
rows: [ { ...data here... } ],
message: "Query took 2.2 milliseconds"
}
我在使用ExtJS 4.x和5.0时询问similar question,我能够使用代理的afterRequest
事件来查看响应,提取消息并显示它。
但这在5.1中被删除了,我似乎无法找出6.0中的等价物。我还从一个问题非常相似的人那里找到了this answer,但扩展Ext.data.proxy.Ajax的接受答案在6.0中对我没有用 - 它在调用时很失败"这个.callParent(参数)"
我已经在这里工作了几个小时,在代理,阅读器,商店和网格配置上进行了戳戳和刺激,并搜索了Google。与往常一样,6.0的文档对于事件来说是无用的。
当AJAX加载成功时,我能找到的唯一事件就是 Store " load"事件。不幸的是,商店无法访问代理处理的JSON响应,至少就我所知。代码:
var ResultsDataStore = Ext.create("Ext.data.Store", {
listeners: {
load: function() { console.log("storeload"); }
},
proxy: ...
我怎么能:
(1)从商店的加载事件或
访问响应(2)监听有权访问响应中传递的消息的其他事件吗?
答案 0 :(得分:0)
我建议使用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