2013-06-29 35 views
7

假設我試圖將Foo記錄保存到後端。無論出於何種原因,後端永遠不會返回(既不成功也不失敗)。Ember Data:如何刪除/卸載卡在「inFlight」狀態的記錄?

從我所看到的情況來看,它看起來像foo一直處於「飛行中」狀態。這種狀態的問題是它完全鎖定記錄 - 你無法做任何事情(不能回滾,無法卸載)。我明白爲什麼它是這樣的(試圖保持事物的一致性)。但是對於這樣的邊緣案例,你能做些什麼嗎?

+0

我面臨着同樣的問題,請你找到答案張貼。 –

回答

6

我還沒有試過,但你可以通過查看燼數據的源代碼中找到一個解決方案,特別是states.js:https://github.com/emberjs/data/blob/master/packages/ember-data/lib/system/model/states.js#L306-L351

不知道有一個堅實的最佳實踐在這裏,但我最好的猜測是你可以通過發送becameInvalid到模型的狀態管理器來恢復

+0

非常感謝Mike。很有幫助。當涉及到關係時使用它有點棘手,但我最終得到了它的工作。再次感謝。 – PJC

6

大廈Mike's建議,我結束了以下內容:

record.send('becameInvalid'); 
record.unloadRecord();