ember.js - 使用 ember-data 执行 unloadAll 时如何避免 "loaded.created.uncommitted"错误?

标签 ember.js ember-data

我的应用程序创建了许多“配置”模型(即,它们仅在运行时存在于应用程序中,并且永远不会被持久化)。我按需加载这些,因此我的应用程序不断创建记录,然后将它们扔掉。

//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/

相关文章:

javascript - EmberJS 无法设置未定义的属性 'store' (DS.hasMany)

arrays - 如何替换数组 Controller 中的内容元素

ember.js - 如何从 Controller 或 View 获取路线的当前模型?

javascript - 将带有参数的 View 组件渲染到命名导出 ember.js

javascript - Ember.js有很多关系数据使用fixture显示

ember.js - Ember 数据 403 获取响应未输入错误操作

Ember.js:哪个 Controller 负责?

ruby-on-rails - Ember 数据未加载嵌套 hasMany

javascript - 计算模型的长度

json - 返回 ember 数据 `find` 或 `findAll` 请求中的总行数