1

データストアがロードされるたびに 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);
            }
        }
    })]);
}

それは機能しますが、フレームワークがすでにより洗練されたソリューションを提供しているかどうか疑問に思います。

4

1 に答える 1

2

ロード リスナーをストアに追加し、ロード イベントが発生したときにそのプロキシから現在のリクエストを取得できます。

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;は、どちらを使用するかを少し簡単にすることができます。

于 2013-03-04T18:58:36.870 に答える