骨干模型不在SAVE上发送数据

时间:2015-08-17 12:00:44

标签: javascript backbone.js marionette backbone-model

这就是我填充模型属性的方式:

this.model.set('questionAnswers', arrQuestions);

现在提交,我检查模型是否有效:

 if (this.model.isValid()) {
                this.model.save(null, { success: this.gradingQuestionsSuccess, error: this.gradingQuestionsFailed });
            }

验证的工作方式如下:

validate: function (attr, options) {
            var error = null;

            if (attr.questionAnswers.length < this.cntQues) {
                this.trigger('empty:answers');
                error = 'Please answer all the questions.';
            }
            return error;
        }

服务电话是:

 url: function () {
            var url = Application.getConfig("url") + "/";
            url += Application.getConfig("v2path3") + "/account/submitGradingQuestions";
            } 
            return url;          
        }

该模型有效且在提交时在其中设置了值,但它未在请求有效负载中发送。

enter image description here

任何人都可以帮助我理解为什么会这样吗?提前谢谢!

1 个答案:

答案 0 :(得分:1)

Backbone不会自动观察已更改的属性并在save(null)上同步。您需要的是将属性传递给Model.save方法,该方法根据set选项的属性使waithere成为var data = {questionAnswers: arrQuestions}; this.model.save(data, { success: this.gradingQuestionsSuccess, error: this.gradingQuestionsFailed }); 。所以你只需要以下内容:

{{1}}

您也不需要手动调用验证,因为它也会在here中被调用。