保存父模型时如何保存相关模型?

时间:2014-02-04 15:38:16

标签: javascript ember.js ember-data

我有一个测验管理器,用户可以在其中添加问题并编辑这些问题的答案。我希望将其用于用户单击一个保存按钮的位置,并保存问题和该问题的答案。所以我的问题是如何从问题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')
});

1 个答案:

答案 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(); });
    });
  }
});