2012-11-08 4 views
7

Sono nuovo per la brace e cerco di capire come funziona.non è riuscito a ottenere la proprietà dell'oggetto di Embedded utilizzando ember.js con i dati di ember

Ho definito un negozio con un adattatore per dispositivi come adattatore (rev 7). Ho definito due modelli:

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

e:

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

Ho anche riempire i loro dispositivi associati e infine un controllore:

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

ho definito una funzione all'interno Modello App.Item:

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

Ecco il jsfiddle corrispondente: http://jsfiddle.net/K286Q/29/

Le mie domande sono:

  • Che cosa sto facendo di sbagliato?
  • Perché vengono visualizzati diversi tag associati al primo elemento, ma non è possibile ottenere il loro nome?

risposta

8

Ti stai imbattendo in alcune rotture di modifiche nella versione corrente di dati di bordo.

Il primo è che, a partire dalla revisione 6 dei dati di brace, gli ID sono normalizzati da stringhe e devono essere rappresentati come stringhe nelle fixture. Si noti che l'adattatore REST convertirà numeri/stringhe, ma l'adattatore per fixture non esegue alcuna conversione. Questa è una fonte comune di confusione (vedi the previous question).

Il secondo è che il supporto per gli oggetti di dati incorporati è stato temporaneamente rimosso da ember-data. Sono abbastanza sicuro che questa funzionalità verrà reintrodotta in un modo migliore rispetto al supporto di {embedded: true} negli attributi. IMO, l'incorporamento è più un problema di adattamento e non appartiene veramente alla definizione del modello.

ho regolato i vostri dispositivi e ottenuto il vostro esempio di lavoro qui: http://jsfiddle.net/dgeb/zHz4Y/

+0

Grazie per le spiegazioni detagli riguardo e chiare, così come l'esempio aggiornato –

+0

disponibile! La mancanza di (piena?) Id-to-string coorsion nelle fixture mi ha messo un po 'a posto anche nella rev 11. Buono a sapersi! –