W mojej aplikacji opartej na Backbone.js mówię do mojego interfejsu API, który odpowiada statusem 204 i pustym obiektem, na wypadek, gdyby żądano kolekcji, która nie zawiera jeszcze żadnych danych. To jest w mojej opinii, jak RESTful API powinien odpowiedzieć w takim przypadku.Jak obsłużyć odpowiedź 204 w żądaniu kolekcji Backbone.js
W mojej aplikacji mam teraz problem, że oczywiście żadne zdarzenie nie jest wyzwalane po otrzymaniu odpowiedzi 204. Starałem się wiązać reset
i all
jak:
FoosCollectionView.prototype.initialize = function() {
this.collection = new FoosCollection;
this.collection.bind('reset', this.render, this);
this.collection.bind('all', this.render, this);
return this.collection.fetch();
};
ale wydarzenia nigdy ogień. Próbowałem więc podać kilka wywołań zwrotnych:
FoosCollectionView.prototype.initialize = function() {
this.collection = new FoosCollection();
return this.collection.fetch({
success: function(a, b, c) {
debugger;
},
error: function(a, b, c) {
debugger;
},
complete: function(a, b) {
debugger;
}
});
};
To samo zachowanie. Żadna instrukcja debugowania nie zostanie osiągnięta w przypadku odpowiedzi 204. Jak mogę obsłużyć 204 odpowiedzi? Czy będę musiał zagłębić się w sync
i dodać dodatkową obsługę dla 204 tam, czy jest coś w Kręgosłupie, którego po prostu jeszcze nie wiem?
Thx Felix
O ile dowiedziałem się, mogę dodać trochę logowanie do zbiorów analizować metody. Lecz obsługa renderowania widoku "bez treści" wydaje się brzydka. – GeorgieF
Znalazłem rozwiązanie, które wydaje się co najmniej trochę bardziej eleganckie. Definiuję parsowanie w moich zbiorach. Wewnątrz sprawdzam, czy dana odpowiedź jest pusta. Jeśli tak, ustawiam modele kolekcji na [], które z kolei wyzwalają zdarzenie resetowania. Widok kolekcji jest powiązany z tym zdarzeniem i może następnie renderować szablon "brak zawartości tutaj". – GeorgieF