ExtJS 3.3 は古いプロジェクトであり、(残念ながら) 現時点ではアップグレードする時間がないため、このプロジェクトではまだ ExtJS 3.3 を使用しています。
安らかな JSON ストアを備えたエディター グリッド パネルがあります。JSON ストアは にautoSave
設定されfalse
ています。これは、何かが変更されたときにサーバー上で長時間実行される可能性のあるタスクを実行する必要があるためです。そこで、「保存」ボタンを作成して、ユーザーが変更を完了したときにのみストアが保存されるようにすることにしました。ストアがサーバーに複数のリクエストを送信しているためsave
、ストアのイベントをリッスンして、すべてのデータが保存された後に長時間実行される操作を開始する別のリクエストを起動しています。
ここで問題が発生します: ドキュメントによると、イベント ハンドラーの 3 番目のパラメーターは保存されたデータであり、次のようにストア操作 (作成、更新、または破棄) によってグループ化されます。
{
create: [ /* created records here */ ],
update: [ /* updated records here */ ],
destroy: [ /* deleted records here */ ]
}
私の問題は、「作成された」レコードしか受信していないことです。他の操作では、いくつかのレコードが必要な場合、配列は常に空です。「update」または「destroy」を使用するレコードがない場合、data
オブジェクトには「update」または「destroy」キーが含まれていません (これは正しいことです)。
最後の保存操作で、更新されたレコードが 1 つ、作成されたレコードが 2 つあり、削除されていないレコードがあるとします。受け取るデータは次のようになります。
{
create: [
{ /* record 1 data here */ },
{ /* record 2 data here */ }
],
update: [] // <-- should not be empty!
}
理由がわからずupdate
、destroy
常に空です。誰でも私を助けることができますか?
または、作成/更新/削除されたすべてのレコードのIDを使用して「保存後」タスクを実行することで、元の問題を解決する方法について別の提案があるかもしれません。