Ember Data希望在适配器响应中找到具有以下ID的记录,但它们丢失了

时间:2017-02-03 13:59:36

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

当我尝试使用ember存储数据时,我似乎有一个反复出现的问题。

当我清除我的localforage(Chrome开发工具 - >标签应用程序)并重新加载我的应用程序时,我创建了一系列对我的API的请求,并且我创建了这些API调用的结果并将它们存储在我的本地存储中。 / p>

通常,在我清理存储后,我收到以下警告:

  

Ember Data希望在适配器响应中找到带有以下ID的记录,但它们丢失了:[1,2]

之后,我收到错误

  

断言失败:id 1已经与modelClass ocularium-frontend @ model的另一条记录一起使用:application-settings:

这应该永远不会发生,因为我已经清理了存储并进行了刷新。他发现那里有数据,但实际上并不存在。

有没有办法解决这个问题并实际保存数据?我试着抓住它并再次存储它。试图'更新'并再次存储它,但没有用。

通常,我会获得带有效JSON的API响应。然后Ember使用如下的模型将其保存到商店。该模型与商店类型具有相同的名称,在本例中为“application-settings”

import DS from 'ember-data';
export default DS.Model.extend({ name: DS.attr() });

然后保存它我使用这个代码,其中'storeKey.type'=“application-settings”和data =新数据。

  

this.store.createRecord(request.storeKey.type,data).save();

1 个答案:

答案 0 :(得分:0)

我似乎找到了解决方案。清除“应用程序”选项卡中的“keyvaluepairs”时,您只能在那里清除它,但它仍然在ember-data中。刷新它的'那里'但不在localforage中。

因此,我会在商店中的每个键上运行并卸载它。之后我清理了我的localforage。

{{1}}

如果您随后调用函数保存到商店,则不会出现警告和错误。