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

时间:2013-06-29 12:32:15

标签: ajax ember.js ember-data

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

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

2 个答案:

答案 0 :(得分:6)

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

不确定这里是否有一个可靠的最佳做法,但我最好的猜测是,您可以通过将becameInvalid发送到模型的stateManager来恢复

答案 1 :(得分:6)

根据Mike's建议,我最终得到以下结论:

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