オブジェクトをグリッドに追加するフォームがあります。私のグリッドは、プロキシを持つストアに接続されています。プロキシ経由でデータベースに新しいエントリを追加しています。新しいエントリを正常に作成できますが、タイムリーにグリッドを更新するのに問題があります。これは私のフォームからの送信ボタンです:
buttons: [{
text: 'Submit',
formBind: true, /* only enabled once the form is valid*/
handler: function() {
var form = this.up('form').getForm()
if(form.isValid()) {
form.submit()
}
Ext.getCmp('grid').getStore().load({
callback: function(records, operation, success) {
console.log(records);
}
})
}
}]
これをアプリで実行すると、Chrome 開発ツールでネットワーク リクエストの順序を表示すると、フォームが送信される前にロード リクエストが呼び出されます。送信ボタンをもう一度押すと、グリッドが更新され、すべてのデータと以前に追加されたエントリが表示されますが、追加されたばかりのエントリは表示されません。したがって、私のグリッドは同期で常に 1 リクエスト遅れています。
グリッドのストアにsync()
電話をかけたり、電話をかけたりしましたが、役に立ちませんでした。私が読んだことによると、 load() はグリッドを更新するのに十分なはずです。リクエストの順番がおかしくなっていると思いますが、直し方がわかりません...load()
どんな洞察も大歓迎です。