我想用餘燼路線和模型來構建一些「雄心勃勃」的網絡應用程序。 這就是我想要做的。我有一本書和作者模型。在顯示作者資源列表的同時,如果用戶點擊作者,則通過嵌套路線顯示該作者的所有書籍。所以我想將作者id(或名稱)作爲動態片段傳遞給書籍模型。但似乎有一個限制,dynamic segments必須是當前模型的primaryKey
,不能使用其他模型屬性或模型。Ember路線 - 動態細分 - 將模型連接在一起
我是否需要編寫自定義的de/serializer?如果是這樣,一個適用於這種情況下的例子小提琴將不勝感激。
下面是一些示例代碼,描述了我想要做什麼,並在評論中出現了具體的問題。
Authors.hbs模板
<div class="span3">
<h4>Books</h4>
<ul class="unstyled">
{{#each model}}
{{#linkTo 'authors.books' this}}<li>
{{name}} <small>{{date dob}}</small> <small> {{origin}}</small>
</li>{{/linkTo}}
{{/each}}
</ul>
</div>
<div class="span8">
{{outlet}}
</div>
initialize.coffee
@resource 'books', ->
@resource 'book', {path: ':cube_id'}
@resource 'authors', ->
@resource 'AUTHOR', {path: ':AUTHOR_id'}
# QUESTION How to make the next line retrieve books-by-author from the book model?
@route 'books', {path: '/books/:author_id'}
AuthorRoute
module.exports = App.AuthorsRoute = Em.Route.extend
model: ->
App.Author.find()
BookRoute
module.exports = App.BooksRoute = Em.Route.extend
model: ->
App.Book.find()
# QUESTION How should the model be extended to allow for lookup by attribute?
# model: (params) ->
# App.Book.find { author: params.book_id }
作者模型
module.exports = App.Author = DS.Model.extend
name: DS.attr 'string'
origin: DS.attr 'string'
dob: DS.attr 'date'
Book模型
module.exports = App.Book = DS.Model.extend
name: DS.attr 'string'
author: DS.attr # QUESTION How to wire together models here?
#author: DS.belongsTo 'App.Author'
publisher: DS.attr 'string'
published: DS.attr 'date'
感謝您的徹底解答。我的問題確實在嵌入式路線的上下文中具體詢問了動態細分市場......您認爲您可以添加一些關於此的評論嗎? –
@ ted.strauss由於某種原因,我沒有看到這個評論。我今天晚些時候會看看它 – MilkyWayJoe