【问题标题】:Persistent store load callback in ExtJS 4.1.1ExtJS 4.1.1 中的持久存储加载回调
【发布时间】:2013-02-18 13:37:08
【问题描述】:

我需要一种方法来在每次加载数据存储时捕获 JSON 响应。我的第一次尝试是使用 autoLoad 属性,但回调仅在第一次加载时触发:

autoLoad: {
    callback: function (records, operation) {
        // do something with operation.response.responseText
    }
}

所以,我决定扩展load 方法:

load: function (options) {
    var callback = options && options.callback;
    return this.callParent([Ext.apply(options || {}, {
        callback: function (records, operation) {
            // do something with operation.response.responseText
            if (callback) {
                return callback.apply(this, arguments);
            }
        }
    })]);
}

它可以工作,但我想知道框架是否已经提供了更优雅的解决方案。

【问题讨论】:

    标签: json load store extjs4.1


    【解决方案1】:

    您可以向 store 添加一个负载监听器,并在触发 load 事件时从它的代理中获取当前请求。

    var myStore = Ext.create("Ext.data.store", {
       ...whatever here
       listeners: {
           load: function(store){
               store.getProxy().activeRequest.options.operation.response.responseText;
           }
       }
    });
    

    如果你特别想要响应文本的话。如果您希望响应为 JSON 对象,您可以使用store.getProxy().reader.rawData;,这会更简单一些

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-17
      • 1970-01-01
      • 1970-01-01
      • 2014-09-16
      相关资源
      最近更新 更多