我的应用程序创建了许多“配置”模型(即,它们仅在运行时存在于应用程序中,并且永远不会被持久化)。我按需加载这些,因此我的应用程序不断创建记录,然后将它们扔掉。
//create a record that will never be persisted
this.store.createRecord('foo', {name: 'wat'});
过去我只会清理商店,但我意识到这实际上并没有“删除”任何东西。我决定改用 unloadAll
this.store.unloadAll('foo');
...但是我遇到了这个错误,因为我有这些“配置”模型
Error while loading route: Error: Attempted to handle event
unloadRecord
on while in state root.loaded.created.uncommitted. at new Error (native)
我怎样才能避免这个错误(同时仍然使用 unloadAll,因为我需要真正从浏览器中删除它们)?
最佳答案
实际上,这已经(应该)通过我 2 天前合并的 PR 解决了:
见:https://github.com/emberjs/data/pull/1714
该 PR 放松了禁止卸载所有脏记录的约束,仅允许 inFlight 记录。我相信经过一些时间和适当的思考,这种限制也可能会被解除。
PR 的其余部分专门围绕在卸载模型、记录数组或销毁存储时进行适当的清理。我确实相信这是正确清理的良好第一遍。
我希望这个(合并的)PR 解决了你的问题,如果没有,请打开一个描述性的问题,让我们解决这个错误。
关于ember.js - 使用 ember-data 执行 unloadAll 时如何避免 "loaded.created.uncommitted"错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21806379/