У меня есть сервер, который работает с заголовком ETag. Backbone обращается к API впервые: все хорошо, ответ получен и парсится. Второй раз: магистраль отправляет на сервер ETag, в ответ получает NotModified. И Backbone пытается разобрать этот ответ, в результате чего создается коллекция под названием reset.
Есть ли способ сбросить коллекцию?
Способ добавления опции добавить в метод выборки работать не будет. Так как мне нужно полностью обновить коллекцию, если пришел ответ сервера.
var recommendCollection = Backbone.Collection.extend({
model : Event,
etag : null,
urlRoot : '/api/users',
initialize: function() {
this.etag = null;
},
parse: function(response) {
return response.data;
},
url : function () {
return (this.urlRoot + "/"+window.me.get('id')+ "/recommendation");
},
beforeSend : function (jqXHR, settings) {
jqXHR.setRequestHeader('if-none-match', this.etag);
},
complete : function (jqXHR, textStatus) {
if (jqXHR.status == 200 || jqXHR.status == 304) {
this.etag = jqXHR.getResponseHeader('ETag');
}
},
update : function () {
this.fetch({
beforeSend : this.beforeSend.bind(this),
complete : this.complete.bind(this),
data : {
cityId : window.me.get('cityId'),
}
});
}