2016-05-25 7 views
0

Ich versuche, auf ein verwandtes Modell (belongTo) aus dem übergeordneten Modell zuzugreifen. In einer Komponente empfange ich dieses Top-Level-Mitarbeitermodell und dort versuche ich auf Adressmodell wie folgt zuzugreifen.Warum gehörtTo Kind-Modell vom Elternmodell stammt nicht vom DS.Model-Typ

this.get (‚Arbeitnehmer‘). Get (‚Adresse‘)

aber die Adresse Objekt I ist nicht von Modelltyp erhalten haben, so bin ich nicht in der Lage auf sie jede Modell Funktion aufzurufen. Überraschenderweise gibt this.get('employee') ein Modellobjekt zurück, und ich bin in der Lage, jede Modellfunktion aufzurufen, die es verwendet.

komplette Mitarbeitermodell ist als unten

export default DS.Model.extend({ 
    serialNo: DS.attr('string'), 
    name: DS.attr('string'), 
    address: DS.belongsTo('employee/address') 
}); 

und das Adress-Modell ist

export default DS.Model.extend({ 
    addressId: DS.attr('string'), 
    streetNo: DS.attr('string'), 
    city: DS.attr('string'), 
}); 

Antwort

0

wäre es besser, wenn Sie die vollständige Datei beider Modelle Mitarbeiter und Adresse Modelle teilen.

employee= DS.Model.extend({ 
serialNo: DS.attr('number'), 
name: DS.attr('number'), 
address: DS.belongsTo('address', { inverse: 'employee' }) , 
}); 

Adresse Modell sollte so etwas wie die

address= DS.Model.extend({ 
    employee: DS.belongsTo('employee', { inverse: 'address' }) , 
    }); 
+0

Danke für die Antwort, aber inrverse Hinzufügen keinen Unterschied machen. Das Adressmodell stammt von this.get ('employee'). get ('address') ist immer noch nicht von DS.Model type –

+0

Sind Sie sicher, dass der Mitarbeiter eine Adresse im Ember Inspector hat? Es wird hilfreich sein, wenn Sie sich mit Inspektor-Snapshots im Zusammenhang mit Mitarbeiter- und Adressmodellen austauschen. –

+0

Aus Gründen der Vertraulichkeit kann ich hier keinen Original-Inspektor-Snapshot ablegen. Ich habe auch die Namen geändert. Aber ich habe mir das Mitarbeiter-Objekt in Ember Inspector-Daten angesehen. In Belongs To sehe ich ein Promise-Objekt gegen "Adresse". Hilft das ? –