无法将记录推送至商店
问题描述:
由于某些原因,我无法将记录推送至商店。我已经尝试了2.1 docs给出的store.push和store.pushPayload示例的最基本示例。无法将记录推送至商店
我第一次尝试使用:
store.push(store.normalize('myModel', item));
然后我试图
store.push({
data: {
id: '666',
type: 'myModel',
attributes: { name: "Bar" },
relationships: { }
}
});
的store.push使用时,(我是怎么想的是正确的),什么都不会返回。我能够运行store.peekAll('myModel').mapBy('name')
,我看到了我推送到商店的数据结果。数据从未出现在Chrome的余烬检查器中。当我在路线模型中使用this.store.peekAll('myModel')
时,没有结果出现,而this.store.findAll('myModel')
生成的数据会呈现给我的模板并显示在chrome ember的下视图中。
我试图避免到服务器之旅,这就是为什么我想从本地存储缓存数据中存储商店,所以我使用peekAll
。任何想法为什么我没有看到我正在推送到商店中呈现在我的模板中的数据,或者为什么没有显示chrome烬检查器?
编辑: 我忘了提及我没有使用默认的JSONApi适配器。我正在使用最新版本的活动模型适配器以及最新版本的ember-data(2.1,我试过2.2-beta3)和ember 2.1。我也有一个使用LocalForage适配器/序列化器的模型,并且这个模型也不适用于直接推送。但是,只要我使用findAll而不是手动推送记录+ peekAll,一切都可以工作。
答
里卡多·门德斯帮我弄清楚我做错了什么。我正在使用“store:main”容器。
App.__container__.lookup('store:main'); // ember 1.x
这不会与烬2.0飞。容器必须“服务:商店”为:
App.__container__.lookup('service:store'); // ember 2.x
我正确地使用API,只是推到了错误的商店。