Модель магистрали не отправляет данные при сохранении

Вот как я заполняю атрибут моей модели:

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;          
        }

Модель действительна, и значения в ней установлены при отправке, но она не отправляет ее в полезной нагрузке запроса.

введите здесь описание изображения

Может ли кто-нибудь помочь мне понять, почему это происходит? Заранее спасибо!


person Abhishek    schedule 17.08.2015    source источник


Ответы (1)


Backbone не отслеживает измененные атрибуты и автоматически выполняет синхронизацию save(null). Что вам нужно, так это передать атрибуты методу Model.save, который делает set под капотом здесь или здесь в зависимости от свойства wait параметра. Итак, вам просто нужно следующее:

var data = {questionAnswers: arrQuestions};

this.model.save(data, {
   success: this.gradingQuestionsSuccess,
   error: this.gradingQuestionsFailed 
});

Вам также не нужно вызывать проверку вручную, поскольку она вызывается в методе сохранения< /а> также.

person Artem Baranovskii    schedule 17.08.2015