【问题标题】:Ember: Revert unloadRecordEmber:恢复卸载记录
【发布时间】:2018-07-18 19:53:35
【问题描述】:

我列出了一个hasMany 关系,其中一条记录可以更新、删除或添加。

我想为用户提供一个恢复选项,它应该将列表恢复到上次保存的状态。

对于删除,我使用item.deleteRecord(),这样我就可以使用rollbackAttributes() 恢复更改。更改按预期还原,但在保存时行为不一致(保存项目所属的模型不会在第一次保存时更新其脏状态,下一条记录从视图中消失,尽管更改正确发送到后端,并且等等)。

所以我决定使用unloadRecord,但是一旦记录被卸载,我无法在不重新加载页面的情况下恢复它。

一种方法是保存旧状态并在还原时使用它。请帮助我使用清洁剂来实现这一目标。

想了解我的模型,Ember: Model's property changes not detected in computed property

【问题讨论】:

  • 我建议您使用 deleteRecord()save() 调查您的原始问题。 unloadRecord() 不是您要实现的目标的正确功能。随时为您的原始功能打开另一个问题并联系我。如果您包含 API 响应,将会很有帮助。

标签: ember.js ember-data


【解决方案1】:

卸载记录会将其从 Ember Data 的内存数据存储中删除。

获取该记录的唯一方法是从服务器重新请求它,也就是:this.store.findRecord()。

您将从服务器获得一个新副本,但不会有客户端在卸载之前所做的任何更改,并且可能有来自其他客户端的新更改。

【讨论】:

  • 您还可以将该记录的表示形式存储为 JSON API 文档,然后使用 store.push() 将其推送到存储中。在这种情况下,您不必查询您的服务器。但我不建议这样做。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-07
  • 2012-08-05
  • 2015-01-02
  • 2016-05-25
  • 2020-02-08
相关资源
最近更新 更多