2
假設我有一個包含Posts集合的Backbone應用程序。所有帖子都屬於博客。創建一個新的職位要求我知道博客它屬於:POST /blog/42/posts
Backbone.js:對belongs_to關係建模
這裏是我想出了迄今爲止 - 請告訴我,如果有一個更好的解決方案:
明知骨幹不希望我對我的模型之間的關係進行建模,我只是翻了url
屬性到一個函數,包括博客ID:
class App.Collections.PostsCollection extends Backbone.Collection
model: App.Models.Post
url: -> "/blog/" + this.blogId + "/posts"
(請原諒的CoffeeScript)。現在我需要知道的職位blogId
採集。所以我只是在路由器初始化功能中加入它:
class App.Routers.PostsRouter extends Backbone.Router
initialize: (options) ->
this.posts = new App.Collections.PostsCollection()
this.posts.blogId = 42 # <----- in reality some meaningful expression ;-)
this.posts.reset options.positions
那只是不對的?!
請賜教 - 你通常如何建模這些嵌套集合?
只是想知道,是否有一個具體的原因,你沒有blogCollection中的blogModel與postCollection作爲屬性(的博客模型)代表博客模型的職位? – Sander
當然,我可能會這樣做(到目前爲止,並不需要它)。不過,我該如何構建網址?我不認爲我可以獲得擁有postCollection的blogModel,對嗎? (除非我像上面使用'blogId'這樣的'blog'屬性,所以它回到了原來的一個。) –
您已經找到了一個簡單的解決方案來滿足您的需求。你可以對它感到滿意,或者你可以深入挖掘一個黑暗的世界。 例如:https://github.com/PaulUithol/Backbone-relational – maxl0rd