<script type="text/x-handlebars" data-template-name="index">
model.cards.length: {{model.cards.length}}
<br>
<button {{action 'addCardToDeck' card}}>Add card</button>
</script>
App = Ember.Application.create();
App.Card = DS.Model.extend({});
App.Deck = DS.Model.extend({
cards: DS.hasMany('card', {async: true})
});
App.IndexRoute = Ember.Route.extend({
model: function() {
return this.store.createRecord('deck');
}
});
App.IndexController = Ember.Controller.extend({
onInit: function() {
var card = this.store.createRecord('card');
this.set('card', card);
}.on('init'),
actions: {
addCardToDeck: function (card) {
this.get('model.cards').pushObject(card);
}
}
});
Ember-data不会在hasMany关系中存储具有相同id的模型。
如何组织工作hasMany以便可以保存几个类似的模型?
答案 0 :(得分:0)
您看到此问题的原因不是因为您的模型记录具有相同的ID,而是因为您每次调用card
时都试图将完全相同的addCardToDeck
记录推送到您的商店。为了解决这个问题,你可以在每次调用addCardToDeck
时将卡重置为新创建的对象,尽管我不确定这是完成你所追求的最佳方法,因为你最终会得到一个你商店里有很多空记录。
addCardToDeck: function (card) {
this.get('model.cards').pushObject(card);
card = this.store.createRecord('card');
this.set('card', card);
}