如何响应ExtJS 6中的成功网格负载并检查响应?

时间:2015-07-09 18:17:24

标签: javascript ajax extjs extjs6

当我的网格通过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)监听有权访问响应中传递的消息的其他事件吗?

1 个答案:

答案 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