グリッドが AJAX プロキシ経由でロードされるとき、応答の「メッセージ」キーを使用して、例外のエラー メッセージまたは正常なロードのオプションの情報メッセージを渡します。例えば:
{
results: 100,
success: true,
rows: [ { ...data here... } ],
message: "Query took 2.2 milliseconds"
}
ExtJS 4.x と 5.0 を使用しているときに同様の質問をしたところ、プロキシのafterRequest
イベントを使用して応答をのぞき、メッセージを抽出して表示することができました。
しかし、これは 5.1 で削除されており、6.0 では同等のものを見つけられないようです。非常によく似た質問を持つ人からのこの回答も見つけましたが、Ext.data.proxy.Ajax を拡張するという受け入れられた回答は 6.0 では機能しません。
私は何時間もこれに取り組んでおり、プロキシ、リーダー、ストア、およびグリッドの構成を突っついたり突っ込んだり、Google を検索したりしました。6.0 のドキュメントは、いつものように、イベントに関しては役に立ちません。
AJAX の読み込みが成功したときに発生する唯一のイベントは、Store の"load" イベントです。残念ながら、ストアは、少なくとも私が知る限り、プロキシが処理した JSON 応答にアクセスできません。コード:
var ResultsDataStore = Ext.create("Ext.data.Store", {
listeners: {
load: function() { console.log("storeload"); }
},
proxy: ...
どうすればよいですか:
(1) Store の load イベントから Response にアクセスする、または
(2) 応答で渡されたメッセージにアクセスできる他のイベントをリッスンしますか?