Ember-Data: uzyskiwanie dostępu do listy zasobów pobranych z boku?
Mam jakiś JSON, który ma tę strukturę w/documents
ścieżka (identyfikatory to UUID):
{
"tags": [
{
"id": "a33fc396-2428-11e3-8eeb-0800270f33f4",
"name": "test"
}
<more tags not shown>
],
"documents": [
{
"id": "c41460fa-2427-11e3-8702-0800270f33f4",
"name": "file.txt",
"tag_ids": [
"a33fc396-2428-11e3-8eeb-0800270f33f4"
]
}
<more documents not shown>
]
}
Widzimy, że zasób Tag jest pobierany z boku. Używam danych ember do załadowania JSON przy użyciu tych tras:
App.Router.reopen
location: 'history'
rootURL: '/'
App.Router.map ->
@resource 'documents', ->
App.DocumentsRoute = Ember.Route.extend
model: ->
@get('store').findAll('document')
i modele:
App.Document = DS.Model.extend
name: DS.attr('string')
tags: DS.hasMany('tag')
App.Tag = DS.Model.extend
name: DS.attr('string')
To działa dobrze; Mogę uzyskać dostęp do wszystkich dokumentów za pomocą kierownicy{{#each}}
zablokuj moje szablony i mogę sprawdzić, czy mogę uzyskać dostęp do wszystkich tagównależący do danego indywidualnego dokumentu.
Chciałbym jednak mieć dostęp do listy wszystkich tagów, bez wchodzenia do każdego dokumentu, w tym samym szablonie. To nie powinno być trudne, ponieważ jest w JSON, jako zasób sideloaded, prawda? Z wyjątkiem tego, że nie wiem, jak to zrobić. W konsoli wpisałem wiele różnych rzeczy, aby sprawdzić, czy jest w jednym z atrybutów kontrolera, i nie znalazłem niczego obiecującego. Zgaduję, że muszę go załadować i ustawić na coś w moim kontrolerze, ale nie wiem, jak to napisać. Co muszę dodać do mojego kodu, aby móc napisać coś takiego?
{{#each tags}}
Name: {{name}} <--- should print "test"
{{/each}}
Wszelkie myśli są mile widziane!