ヘッダーETagで動作するサーバーがあります。バックボーンは初めてAPIを参照します。すべてが良好で、応答を受信して解析します。2回目:バックボーンはサーバーにETagを送信し、応答としてNotModifiedを受信します。そして、Backboneがこの応答を解析しようとすると、resetというコレクションが生成されます。
コレクションをリセットする方法はありますか?
fetchメソッドに追加するオプションを追加する方法は機能しません。コレクションを完全に更新する必要があるので、サーバーの応答に到達した場合。
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'),
}
});
}