抓取單個骨幹的模型說我有一個路由設置:從服務器
'photos/:id' : 'showPhoto'
,有人分享的網址:www.mysite.com/photos/12345
與一個朋友。
當他們的朋友點擊共享鏈接時,showPhoto
被12345以ID身份傳回。我無法弄清楚如何從服務器獲取的模式,因爲設置它的id屬性和調用取(),即使骨幹認爲,該模型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)
的解決方案嗎?當我只想加載一個模型的屬性時,這看起來太低效了。
Derick,你是怎麼來學習這麼多關於Backbone的?我還沒有找到任何明確的指南。我閱讀了Addy Osmani的骨幹基礎和食譜,以及無數的博客,包括你的博客。你似乎比大多數人有更深的理解。你從哪裏拿起來的? – AndrewHenderson
試驗和錯誤,閱讀Backbone源代碼,閱讀我所能做的一切,儘可能多地學習JavaScript ......但主要是試圖教其他人。教別人強迫你深入挖掘並真正理解發生了什麼。 :) –
這似乎是一個過時的答案,因爲Backbone的API已經改進。我們可以改進這種迴應嗎? – sankargorthi