2017-01-31 5 views
1

Ich schreibe eine 'nach speichern' Haken und habe ein Problem, Daten zu lesen.Loopback nach Speichern - Daten undefiniert?

Was ich tun möchte, ist auf Daten in einem anderen Modell zugreifen, aber dabei ist es undefined. Hier

ist ein Code:

module.exports = function(Fault) { 
    Fault.observe('after save', function(ctx, next) { 
    ctx.Model.app.models.faulttype.find({where:{id:ctx.instance.faulttypeId}}, function(err, faulttype) { 
     if (err) 
     console.log(err); 
     console.log(faulttype); 
     console.log(faulttype.slogan); 
    .... 
} 

ich die ctx.Model.app.models bin mit einem der anderen Modelle greifen Ich habe (faulttype). Das Problem ist später, wenn ich es benutze.

Im ersten console.log es schreibt alle Attribute und Werte für die faulttype, aber wenn ich versuche, ein bestimmtes Attribut zu verwenden, wie in den zweiten console.log wo ich faulttype verwenden.

Slogan Ich bekomme die Antwort, dass es undefined ist. Ich verstehe nicht warum.

Irgendwelche Ideen/Kommentare?

+0

Bitte überprüfen http://stackoverflow.com/help/mcve erraten konnte, um zu sehen So erstellen ein minimales, vollständiges und überprüfbares Beispiel – pringi

Antwort

0

faulttypeId ist Referenzwegein-Schlüssel im Fehlermodell?

Da Sie nicht genug Informationen zur Verfügung gestellt haben, für mich zu beurteilen, ich das Problem zu erraten ist, dass bei bestimmten Methoden gibt es keine ctx.instance - die Daten dynamisch zugewiesene Eigenschaft versteckt auf der Methode in dending: Check this tabel for reference

Could Beachten Sie, dass die von Ihnen verwendete Methode keine Instanz im Kontextobjekt übergibt. Verwenden Sie updateAll Methode?

Wenn könnten Sie mehr Informationen zur Verfügung stellen (die Methode, ctx-Struktur (nur console.dir(ctx);, etc etc) ich mehr :)

Verwandte Themen