Ember {{#each}} 显示之前删除的记录

Ember {{#each}} shows previously deleted records

我一直在与我正在开发的应用程序中的错误作斗争。我创建了一个 JSBin 来说明它,这些是你应该采取的重现它的步骤:

  1. 单击显示“新规则集”的 link“

您将看到规则集生成器模板显示该框。请注意,我已经包含了 idisDeletedisDirtyisSaving 属性,以便轻松查看该记录的状态。我还显示了 hasMany 关系的长度。

  1. 单击“删除”link 以销毁该记录

不出所料,规则集框消失,长度表示有0个规则集。我都在使用父模型的 removeObject 和我要删除的对象上的 destroyRecord,尽管我认为 Ember 数据应该为我解决这个问题。

请注意,在控制台中我正在记录 firstObject,即使 length 为 0,它也很奇怪地出现了。我不知道这是否与什么有关发生在下一步。

  1. 再次单击“新规则集”link

您会看到显示了两个框。第一个是您之前删除的规则集。请注意它是如何 isDeleted,而不是 isDirty 而不是 isSaving,如 here 所示,这意味着更改已持续。

显然再次从 isDeleted 记录中点击“删除”会在控制台中抛出错误:

Uncaught Error: Attempted to handle event deleteRecord on while in state root.deleted.saved.

我错过了什么? {{#each}} 应该显示 isDeleted 的记录吗?

感谢您的帮助!

我在 Ember 数据存储库中提交了一个问题,结果已经有人报告了。

请查看 #2666 以获取后续信息和一些暂时解决问题的方法。 我看到的最新一个是由 dwickern 发布的,它涉及使用计算 属性 而不是

comments: Ember.computed.filterBy('model.comments', 'isDeleted', false)

显然 ember-data.1.0.0.beta-12 没有问题并且已经有一个 Pull Request #2722一个可能的解决方案。