2012-11-08 4 views
7

Ich bin neu in ember verwenden und versuchen zu verstehen, wie es funktioniert.fehlgeschlagen Objekteigenschaft embedded erhalten Ember.js mit glut-Daten

ich ein Geschäft mit einem fixturesAdapter als Adapter (rev 7) definiert haben. Ich habe definiert zwei Modelle:

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

und:

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

ich auch den dazugehörigen Armaturen füllen und schließlich einen Controller:

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

ich eine Funktion innerhalb definiert haben App.Item Modell:

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

Hier ist die entsprechende jsfiddle: http://jsfiddle.net/K286Q/29/

Meine Fragen sind:

  • Was mache ich falsch?
  • Warum werden mehrere Tags mit dem ersten Element verknüpft, können aber nicht ihren Namen erhalten?

Antwort

8

In der aktuellen Version von ember-data stößt man auf einige einschneidende Änderungen.

Die erste ist, dass, da Revision 6 von ember-Daten, IDs strang normalisierten und müssen als Zeichenfolgen in Vorrichtungen dargestellt werden. Beachten Sie, dass der REST-Adapter Zahlen/Strings konvertiert, der Fixture Adapter jedoch keine Konvertierungen durchführt. Dies ist eine häufige Quelle der Verwirrung (siehe the previous question).

Die zweite ist, dass die Unterstützung für eingebettete Datenobjekte aus ember-Daten temporär entfernt wurde. Ich bin mir ziemlich sicher, dass diese Funktion in den Attributen besser als {embedded: true} unterstützt wird. IMO, Embedding ist eher ein Adapterproblem und gehört nicht wirklich zur Definition des Modells.

ich eingestellt Fixtures und bekam Ihr Beispiel, hier zu arbeiten: http://jsfiddle.net/dgeb/zHz4Y/

+0

Dank für detaillierte und klare Erklärungen sowie die aktualisierte Beispiel –

+0

Hilfreiche! Der Mangel an (voller?) Id-to-string Coersion in den Spielen hat mich auch in Rev 11 etwas gebissen. Gut zu wissen! –