2015-11-14 122 views
1

由於某些原因,我無法將記錄推送至商店。我已經嘗試了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,一切都可以工作。

回答

2

裏卡多·門德斯幫我弄清楚我做錯了什麼。我正在使用「store:main」容器。

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

這不會與燼2.0飛。容器必須「服務:商店」爲:

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

我正確地使用API​​,只是推到了錯誤的商店。