Скажем, у меня есть настройка маршрута:
'photos/:id' : 'showPhoto'
, и кто-то делится URL: www.mysite.com/photos/12345
с другом.
Когда их друг нажимает на общую ссылку, showPhoto
перезванивается с 12345 переданным в качестве идентификатора.Я не могу понять, как извлечь модель с сервера, потому что даже при установке свойства id и вызове fetch (), Backbone считает, что модель isNew
, и поэтому URL-адрес запроса ajax просто /photos
вместо /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'
Модель Photo
обычно является частью коллекции, но в этом случае кто-то посещает сайт напрямую и ожидает увидеть данные только для одной фотографии, поэтому коллекция не создается в этом экземпляре.состояние приложения.
Является ли решение загрузить всю коллекцию фотографий и затем использовать collection.getById(id)
?Это просто кажется слишком неэффективным, когда я просто хочу загрузить свойства для одной модели.