使用以下模型和存储,我可以使用 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);
这产生了以下错误:
“你必须在传递给‘push’的哈希中包含一个‘id’。
我还尝试了 store.createRecord 的各种化身,这导致了不同的错误。
这样做的正确方法是什么?