Zdaję sobie sprawę, że można to zrobić i przyjrzałem się kilku miejscom (w tym: Najlepsza praktyka zapisywania całej kolekcji? ). Ale nadal nie wiem, „dokładnie jak” jest napisane w kodzie? (post wyjaśnia to po angielsku. Byłoby wspaniale mieć wyjaśnienie specyficzne dla javascript :)
Powiedzmy, że mam kolekcję modeli - same modele mogą mieć kolekcje zagnieżdżone. Zastąpiłem metodę toJSON () kolekcji nadrzędnej i otrzymuję prawidłowy obiekt JSON. Chcę „zapisać” całą kolekcję (odpowiadający jej kod JSON), ale szkielet nie wydaje się mieć wbudowanej takiej funkcjonalności.
var MyCollection = Backbone.Collection.extend({
model:MyModel,
//something to save?
save: function() {
//what to write here?
}
});
Wiem gdzieś musisz powiedzieć:
Backbone.sync = function(method, model, options){
/*
* What goes in here?? If at all anything needs to be done?
* Where to declare this in the program? And how is it called?
*/
}
Gdy „przeglądanie” zakończy się wraz z przetwarzaniem, jest ono odpowiedzialne za polecenie kolekcji, aby „zapisała się” na serwerze (zdolnym do obsługi zbiorczego żądania aktualizacji / tworzenia).
Pytania, które się pojawiają:
- Jak / co napisać w kodzie, aby „połączyć to wszystko razem”?
- Jaka jest „właściwa” lokalizacja wywołań zwrotnych i jak określić wywołanie zwrotne „powodzenie / błąd”? Mam na myśli składnię? Nie jestem pewien składni rejestracji callbacków w sieci szkieletowej ...
Jeśli jest to rzeczywiście trudne zadanie, czy możemy wywołać jQuery.ajax w widoku i przekazać this.successMethod
lub this.errorMethod
jako wywołanie zwrotne sukcesu / błędu? Czy to zadziała?
Muszę się zsynchronizować ze sposobem myślenia kręgosłupa - wiem, że na pewno brakuje mi czegoś podczas synchronizacji całych kolekcji.