Синхронизация Backbone вызывает событие «error» при возникновении ошибок.Поэтому вы можете использовать один из подходов - расширить объекты Model и Collection в Backbone, чтобы добавить эти дополнительные проверки ошибок.Это будет выглядеть примерно так:
ErrorHandlingModel = Backbone.Model.extend({
initialize: function(attributes, options) {
options || (options = {});
this.bind("error", this.defaultErrorHandler);
this.init && this.init(attributes, options);
},
defaultErrorHandler: function(model, error) {
if (error.status == 401 || error.status == 403) {
// trigger event or route to login here.
}
}
});
OtherModel = ErrorHandlingModel.extend({
});
, и вы сделаете что-то похожее для объекта Collection.Я не проверял выше, но думаю, что это довольно близко.Очевидно, вы бы выбрали лучшие имена классов.Метод init просто позволяет подклассам получить возможность выполнить свою собственную инициализацию.