Say mam konfigurację trasy:Pobieranie pojedynczy model Backbone z serwera
'photos/:id' : 'showPhoto'
i ktoś podziela link: www.mysite.com/photos/12345
z przyjacielem.
Gdy znajomy kliknie udostępniony link, zostanie wywołana showPhoto
z powrotem z 12345 przekazanym jako identyfikator. Nie mogę dowiedzieć się, jak pobrać model z serwera, ponieważ nawet gdy ustawienie jego właściwości id i wywołanie fetch(), kręgosłup uważa, że model isNew
a więc ajax żądanie url jest właśnie /photos
zamiast /photos/12345
:
showPhoto: (id) ->
photo = new models.Photo _id:id
photo.fetch #does a GET to /photos, I would have expected it to request /photos/12345
success:() ->
render photo view etc...
Photo = Backbone.Model.extend
idAttribute: '_id'
urlRoot: '/photos'
Model Photo
jest zazwyczaj częścią kolekcji, ale w tym scenariuszu ktoś odwiedza witrynę bezpośrednio i oczekuje tylko wyświetlenia danych dla jednego zdjęcia, więc kolekcja nie jest tworzona w tym stanie aplikacji.
Czy można załadować całą kolekcję zdjęć, a następnie użyć collection.getById(id)
? To wydaje się po prostu zbyt mało wydajne, gdy chcę tylko załadować właściwości dla jednego modelu.
Derick, jak się dowiedziałeś o kręgosłupie? Nie znalazłem żadnego ostatecznego przewodnika. Czytam Podstawy i Przepisy Addy Osmani z kręgosłupem, a także niezliczone blogi, w tym twoje. Wydaje się, że masz o wiele głębsze zrozumienie niż większość. Gdzie go odebrałeś? – AndrewHenderson
Próba i błąd, czytanie kodu źródłowego Backbone, czytanie wszystkiego, co mogę na ten temat, uczenie się jak najwięcej o JavaScript ... ale głównie próbowanie uczyć innych ludzi. Nauczanie innych zmusza cię do głębokiego kopania i do zrozumienia, co się dzieje. :) –
Wydaje się, że jest to opatrzona datą odpowiedź, ponieważ poprawiły się API Backbone. Czy możemy poprawić tę odpowiedź? – sankargorthi