繁体   English   中英

如何响应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时,我问了类似的问题 ,并且能够使用Proxy的afterRequest事件来窥视响应,提取消息并显示它。

但这在5.1中已被删除,我似乎无法在6.0中找到等效项。 我也从一个问题非常相似的人那里找到了这个答案 ,但是扩展Ext.data.proxy.Ajax的公认答案在6.0中对我不起作用-它基于调用“ this.callParent(arguments)”。

我已经花了几个小时了,在代理,阅读器,存储和网格配置上进行搜索和搜索,并搜索Google。 与事件一样,6.0的文档通常也没有用。

我发现AJAX加载成功时会触发的唯一事件是商店的 “加载”事件。 不幸的是,就我所知,商店无法访问代理处理的JSON响应。 码:

var ResultsDataStore = Ext.create("Ext.data.Store", {
    listeners: {
        load: function() { console.log("storeload"); }
    },
    proxy: ...

我怎么可以:

(1)从商店的加载事件访问响应,或者

(2)侦听有权访问响应中传递的消息的其他事件吗?

我建议使用Reader的transform config选项:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM