Я пытаюсь переопределить метод Backbone.sync для моей модели.Сгенерировать пользовательскую ошибку базового диапазона на model.save success
Сервер возвращает статус: 200 OK, а во всех случаях срабатывает успешная обратная связь.
Ответ сервера выглядит следующим образом
Статус: 200 OK
ответ: { StatusCode: '0'; // 0 успеха, 1,2,3 ошибки ... }
Я overided функции синхронизации бросить обратный вызов ошибки случаи прекрасно работает и бросить сообщение об ошибке CallBack
Хотя я не может пройти любые настраиваемые параметры для обратного вызова ошибки.
sync : function(method, model, options) {
var self = this, config = {};
var newError = function(method, success, error) {
return function(response, textStatus, jqXHR) {
if (response.statusCode === '0' && _.isFunction(success)) {
success(response, textStatus, jqXHR);
} else if (_.isFunction(error)) {
switch (response.statusCode) {
case '1':
//response.statusCode: '2'
//response.statusMessage: 'Servers error 1!”
textStatus = 'Servers error 1!';
break;
case '2':
//response.result: 'Server error 2'
//response.statusCode: '2'
textStatus = 'Servers error 1';
break;
}
error(response, jqXHR, textStatus); //arguments fail maybe backbone overrides them before firing my error callback
}
};
};
config.success = newError(method, options.success, options.error);
// add API call configuration to the `options` object
options = _.extend(options, config);
return Backbone.Model.prototype.sync.call(this, method, model, options);
}
// следующая ошибка обратного вызова вызывается, но сообщение не передается к нему
model.save(data,{
success : successCB,
error : function(args){
alert('error'); //works
//args.textStatus or something similar passed from above sync logic
}
})
Я знаю, что что-то не так в этой линии. ошибка (ответ, jqXHR, textStatus);
Пожалуйста, дайте мне знать, как передать textStatus или другие параметры обратного вызова ошибки