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



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

当我清除我的localforge(Chrome开发工具->选项卡应用程序)并重新加载我的应用程序时,我创建了一系列对API的请求,并使用这些API调用的结果创建并存储在我的localstorage中。

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

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

之后,我得到一个错误

断言失败:id 1已与modelClass的另一条记录一起使用ocularium-frontend@model:应用程序设置:

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

有没有办法解决这个问题并实际保存数据?我试着把它抓起来,然后再把它存起来。尝试"更新"并再次存储,但没有成功

通常,我会得到一个带有有效JSON的API响应。Ember然后使用下面这样的模型,将其保存到商店中。该模型与商店类型同名,在本例中为"应用程序设置">

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

然后为了保存它,我使用了这段代码,其中"storeKey.type"="应用程序设置",data=新数据。

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

我似乎找到了解决方案。在应用程序选项卡中清除"keyvaluepairs"时,您只在那里清除它,但它仍在成员数据中。当刷新时,它在那里,但不在当地的饲料中。

因此,我把商店里的每一把钥匙都翻了一遍,然后把它卸了下来。

let store = this.get('store');
for (let key in store.typeMaps) {
store.unloadAll(store.typeMaps[key].type.modelName);
}
window.localforage.clear().then(() => {
Ember.Logger.log('EMBER-DATA STORAGE CLEARED');
});

如果随后调用函数将其保存到存储中,则不会收到以上警告和错误。

最新更新