当我将对象推送到模型时,我遇到了一个与ember js有关的奇怪问题。这是我的代码:
// Environment.js
EXTEND_PROTOTYPES: {
// Prevent Ember Data from overriding Date.parse.
Date: true,
Array: true,
}
Route.js
model () {
return Ember.RSVP.hash({
newCollection: this.get('store').createRecord('collection'),
book1: this.get('store').createRecord('book'),
book2: this.get('store').createRecord('book')
})
}
控制器
actions:{
addCollection(model) {
model.newCollection.pushObject(model.book1);
model.newCollection.pushObject(model.book2);
},
}
现在我不确定是什么问题,但是我试图将书模型推入集合中,但是,我得到一个问题,因为控制台日志表明pushObject不是函数。我已经像其他问题一样更新了我的Environment.js,但这仍然是一个问题。
收集模型
// collection Model
export default DS.Model.extend({
name: DS.attr('string'),
city: DS.attr('string'),
books: DS.hasMany('book', { async: true })
});
书籍模型
//book Model
export default DS.Model.extend({
title: DS.attr('string'),
description: DS.attr('string'),
collection: DS.belongsTo('collection', {async: true})
});
答案 0 :(得分:2)
你有一个错字。您正在推送实际模型而不是books
hasMany
关系:
actions: {
addCollection(model) {
model.newCollection.get('books').pushObject(model.book1);
model.newCollection.get('books').pushObject(model.book2);
},
}
答案 1 :(得分:1)
您的问题是,newCollection
是一个收集记录。
所以你应该这样做:
model.newCollection.get('books').pushObject(model.book1);