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