2012-11-08 9 views
7

Jestem nowy w ember i próbuję zrozumieć, jak to działa.nie udało się uzyskać właściwości obiektu osadzonego za pomocą ember.js z danymi ember

Zdefiniowałem sklep z adapterem urządzeń jako adapterem (rev 7). Mam zdefiniowane dwa modele:

App.Tag = DS.Model.extend({ 
    name: DS.attr('string'), 
    item: DS.belongsTo('App.Item') 
}); 

a:

App.Item = DS.Model.extend({ 
    name: DS.attr('string'), 
    tags: DS.hasMany(App.Tag, { embedded:true }), 
}) 

ja również wypełnić związane z nimi urządzeń i wreszcie kontrolera:

App.itemsController = Ember.ArrayController.create({ 
    content: App.store.findAll(App.Item) 
}); 

Mam określonej funkcji wewnątrz App.Item model:

tagline: function(){ 
    return this.get('tags').toArray().map(function(tag){ 
     return tag.get('name'); 
    }).join(','); 
}.property('[email protected]') 

Oto odpowiadające jsfiddle: http://jsfiddle.net/K286Q/29/

moje pytania są następujące:

  • Co robię źle?
  • Dlaczego niektóre znaczniki są powiązane z pierwszym elementem, ale nie mogą uzyskać jego nazwy?

Odpowiedz

8

Występujesz przeciwko kilku przełomowym zmianom w aktualnej wersji danych ember.

Po pierwsze, od korekty 6 danych ember, identyfikatory są znormalizowane i muszą być reprezentowane jako ciągi w urządzeniach. Zwróć uwagę, że adapter REST konwertuje liczby/ciągi, ale adapter urządzeń nie wykonuje żadnych konwersji. Jest to powszechne źródło nieporozumień (patrz the previous question).

Po drugie, obsługa osadzonych obiektów danych została tymczasowo usunięta z danych ember. Jestem prawie pewny, że ta funkcja zostanie ponownie wprowadzona w lepszy sposób niż obsługa {embedded: true} w atrybutach. IMO, osadzanie jest bardziej niepokojące i nie pasuje do definicji modelu.

ja regulować swoich urządzeń i dostał swoją pracę tutaj przykład: http://jsfiddle.net/dgeb/zHz4Y/

+0

Dzięki zobaczyć szczegółowe i jasnych wyjaśnień, jak również zaktualizowaną przykład –

+0

pomocne! Brak (pełnego?) Współczynnika "id-do-string" w urządzeniach po prostu mnie przyrównał do rev 11. Dobrze wiedzieć! –

Powiązane problemy