1
使用以下模型和商店,我可以使用FIXTURES成功加載數據,如下所示。在具有多種關係的商店中創建新記錄
App.Item = DS.Model.extend({
itemName: DS.attr('string'),
strategy: DS.belongsTo('strat')
});
App.Strat = DS.Model.extend({
stratName: DS.attr('string'),
items: DS.hasMany('item',{async:true})
App.Store = DS.Store.extend({
adapter: DS.FixtureAdapter
});
App.StratLeg.FIXTURES =
[
{id: 1, itemName: 'I1', strategy: 1},
{id: 2, itemName: 'I2', strategy: 2},
{id: 3, itemName: 'l3', strategy: 2},
];
App.Strat.FIXTURES =
[
{id: 1, stratName: 's1', items: [1]},
{id: 2, stratName: 's2', items: [2,3]}
];
但是,當我嘗試添加使用JavaScript的新紀錄,我遇到了各種各樣的錯誤。繼在DS.store的EmberData-API機制的文檔的例子,我想:
var pushData = {
strat: [{id: 100, stratName: "s5", items: [101]}],
item: [{id: 101, itemName: "I5", strategy: 100}]};
this.store.push ('strat', pushData);
這產生了以下錯誤:
「你必須在傳遞給哈希的‘身份證’ 「推」。
我也試過store.createRecord的各種各樣的化身,這導致了不同的錯誤。
什麼是這樣做的正確方法?
感謝他們推你回覆。我嘗試了你的建議,並得到以下錯誤:TypeError:serializer.pushPayload不是一個函數。我使用的是ember-data-beta-3.js。 – user2436810
看起來它對我有用,我包括一個工作示例。 – Kingpin2k
你打算怎麼做? – Kingpin2k