【发布时间】:2011-11-14 23:37:27
【问题描述】:
假设我有一个路线设置:
'photos/:id' : 'showPhoto'
有人与朋友分享网址:www.mysite.com/photos/12345。
当他们的朋友点击共享链接时,showPhoto 会被回调,并以 12345 作为 id 传递。我不知道如何从服务器获取模型,因为即使在设置它的 id 属性并调用 fetch() 时,主干也认为模型 isNew 并且 ajax 请求 url 只是 /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) 的解决方案吗?当我只想加载一个模型的属性时,这似乎太低效了。
【问题讨论】:
标签: javascript model-view-controller backbone.js