我有一个测验管理器,用户可以在其中添加问题并编辑这些问题的答案。我希望将其用于用户单击一个保存按钮的位置,并保存问题和该问题的答案。所以我的问题是如何从问题save()方法访问和调用save()。但是我收到一个错误:没有保存方法。我试着提供尽可能多的但是如果你还需要别的东西请告诉我
问题控制器
App.QuestionController = Ember.ObjectController.extend({
softSave: function() {
var self = this;
this.get('model').save().then(function() {
//this is what throws the error
self.get('answers').save();
console.log('%c Question was saved','color:green;');
}, function() {
console.log('%c Question not saved', 'color:red;');
});
}
}
});
问题模型
App.Question = DS.Model.extend({
'quiz': DS.belongsTo('quiz'),
'text': attr('string'),
'ord': attr('number'),
'answers': DS.hasMany('answer' , { async: true } )
});
答案型号
App.Answer = DS.Model.extend({
'question': DS.belongsTo('question'),
'content': attr('string'),
'correct_answer': attr('boolean')
});
答案 0 :(得分:0)
我认为问题在于answers
不是模型;它是一系列模型。因此,最简单的解决方法是执行以下操作:
App.QuestionController = Ember.ObjectController.extend({
softSave: function() {
var self = this;
this.get('model').save().then(function() {
self.get('answers').forEach(function(answer) { answer.save(); });
});
}
});