2013-06-29 3 views
7

Fooレコードをバックエンドに保存しようとしています。何らかの理由で、バックエンドは決して戻りません(成功も失敗も返さない)。Emberのデータ:「inFlight」状態になっているレコードを削除/アンロードするにはどうすればよいですか?

fooが「飛行中」の状態にあるように見えます。この状態の問題は、レコードを完全にロックすることです。何もできません(ロールバックできず、アンロードできません)。私はそれがなぜ同じであるか理解しています(物事を一貫させようとする)。しかし、このような最悪の場合について何かできることはありますか?特にstates.js、

+0

私は同じ問題に直面していますあなたは答えを見つけた場合、投稿してください。 –

答えて

6

は、私はこれを試していませんでしたが、あなたはエンバー・データのソースコードを見て、解決策を見つけるかもしれない:https://github.com/emberjs/data/blob/master/packages/ember-data/lib/system/model/states.js#L306-L351

が固体のベストプラクティスがここですが、私の最高の推測があるわかりませんbecameInvalidをモデルのstateManagerに送信して、を回復させることができます。

+0

ありがとうMike。非常に役立ちます。関係が関係しているときに使うのはちょっと難しいですが、最終的にはうまくいくようになっています。再度、感謝します。 – PJC

6

Mike's提案のビル、私は次のようになってしまった:

record.send('becameInvalid'); 
record.unloadRecord(); 
関連する問題