Ember数据:如何删除/卸载卡在"inFlight"状态的记录?

PJC*_*PJC 7 ajax ember.js ember-data

假设我正在尝试将Foo记录保存到后端.无论出于何种原因,后端永远不会返回(既不成功也不失败).

从我所看到的,看起来foo保持在"飞行中"状态.这种状态的问题是它完全锁定记录 - 你不能对它做任何事情(不能回滚,无法卸载).我理解为什么会这样(尝试保持一致).但对于像这样的边缘案例,您能做些什么吗?

Mik*_*tti 6

我没试过这个,但你可以通过查看ember-data的源代码找到解决方案,特别是states.js:https://github.com/emberjs/data/blob/master/packages/ember-data/lib/系统/模型/ states.js#L306-L351

不确定这里有一个可靠的最佳实践,但我最好的猜测是你可以通过发送到模型的stateManager 来恢复becameInvalid.


ace*_*des 6

根据迈克的建议,我得到了以下结论:

record.send('becameInvalid');
record.unloadRecord();
Run Code Online (Sandbox Code Playgroud)