0

ストアからアイテムを削除する必要がある状況があります。remove(record)メソッドを使用しています。目標は、サーバーがアイテムを削除して成功メッセージを返した後でのみ、ストアからアイテムを削除することです。ストアはajaxプロキシを使用してサーバーにDELETE呼び出しを行い、autoloadとautosyncの両方を使用しています。remove(record)が呼び出されると、最初にストアからレコードが削除され、次にサーバーへのDELETE呼び出しが行われます。

サーバーの応答に基づいてモデルをストアに手動で再挿入する必要があるように思われるため、この動作は少し奇妙だと思います。状況をより複雑にしているのは、「例外」イベントがストアではなくプロキシによって処理されていることです。また、プロキシはストアに依存しないため、プロキシでサーバーの応答によって生成された例外イベントをキャッチし、ストアでrejectChangesなどの操作を実行できません。

明らかに私の実装のロジックに何か問題があるので、理解する必要があるのは、サーバーが応答した後、サーバーの応答に基づいてストアを変更する方法、またはそれが不可能な場合は、操作前にストアを以前の状態に戻す方法です。

4

1 に答える 1

2

そのためにプロキシの「例外」イベントを使用します。例えば:

store.getProxy().on({
    exception: function() {
        store.rejectChanges();
    }
})

また、ストアに追加することもできます。

initComponent: function() {
    this.callParent(arguments);
    this.getProxy().on({
        exception: function(proxy, response, operation) {
            this.rejectChanges();
        }
    });
}
于 2013-02-18T11:06:26.433 に答える