【问题标题】:Ember {{#each}} shows previously deleted recordsEmber {{#each}} 显示以前删除的记录
【发布时间】:2015-02-20 21:09:10
【问题描述】:

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

  1. 点击“新规则集”链接

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

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

正如预期的那样,规则集框消失了,长度表示有 0 个规则集。我同时使用父模型中的removeObject 和我要删除的对象上的destroyRecord,尽管我认为Ember 数据应该为我处理这些问题。

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

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

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

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

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

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

感谢您的帮助!

【问题讨论】:

  • 您是使用真正的适配器还是仅使用夹具适配器遇到这种情况?
  • 我正在使用ActiveModelAdapter 体验它。我有一个 Rails API,它显示 DELETE 请求并且响应没有错误。我的数据库显示记录不再存在,Ember 检查器也没有显示rule-set

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


【解决方案1】:

我在 Ember Data 存储库中提交了一个问题,事实证明这已经被报告了。

查看#2666 以了解后续情况以及暂时解决此问题的一些方法。 我看到的最新一个是 dwickern 发布的,它涉及使用计算属性来代替

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

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

【讨论】:

  • 这听起来像一个错误.. gj
猜你喜欢
  • 2018-06-20
  • 2021-07-09
  • 2014-05-06
  • 2023-01-21
  • 2014-11-18
  • 2016-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多