无法将记录推送到商店

时间:2015-11-14 20:06:12

标签: ember.js ember-data

出于某种原因,我无法将记录推送到商店。我已经尝试了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 ember检查器中。当我在路线模型中使用this.store.peekAll('myModel')时,没有显示任何结果,而this.store.findAll('myModel')结果数据将呈现给我的模板并显示在chrome ember inpsector中。

我正试图避免去服务器,这就是为什么我想从localStorage中缓存的数据中保存商店,所以我使用peekAll。任何想法为什么我没有看到数据我正在推动我的模板中的商店渲染或为什么没有显示chrome ember检查器?

编辑: 我忘了提到我没有使用默认的JSONApi适配器。我正在使用最新版本的active-model-adapter和最新版本的ember-data(2.1和我试过2.2-beta3)和ember 2.1。我也有一个使用LocalForage适配器/序列化器的模型,而且一个模型也不能直接推送。但是,只要我使用findAll而不是手动推送记录+ peekAll,一切都有效。

1 个答案:

答案 0 :(得分:2)

里卡多·门德斯帮助我弄明白我做错了什么。我正在使用" store:main" 容器。

App.__container__.lookup('store:main'); // ember 1.x

这与ember 2.0无关。容器需要" service:store" ,如下所示:

App.__container__.lookup('service:store'); // ember 2.x 

我正在使用API​​,只是推到错误的商店。