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

时间:2015-02-20 21:09:11

标签: ember.js ember-data ember-components

我一直在讨论我正在开发的应用中的一个错误。我创建了一个JSBin来说明它,这些是您应该重现它的步骤:

  1. 点击“新规则集
  2. 的链接

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

    1. 点击“删除”链接销毁该记录
    2. 正如预期的那样,规则集框消失,长度表示有0个规则集。我正在使用父模型中的removeObject和我试图删除的对象上的destroyRecord,尽管我认为Ember数据应该为我处理。

      请注意,在控制台中我正在记录firstObject,即使length为0,也很奇怪。我不知道这是否与发生的事情有关下一步。

      1. 再次点击“新规则集”链接
      2. 您会看到显示两个方框。第一个是您之前删除的规则集。请注意isDeleted,而不是isDirty而不是isSaving如何表示here表示更改仍然存在。

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

          

        未捕获错误:在状态root.deleted.saved中尝试处理事件deleteRecord

        我错过了什么? {{#each}}是否应显示isDeleted

        的记录

        感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

我在Ember Data回购中提交了一个问题,事实证明已经报道了这个问题。

请查看#2666进行后续跟踪以及暂时解决此问题的方法。 我看到的最新版本是由 dwickern 发布的,它涉及使用计算属性而不是

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

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