2015-11-12 14 views
5

Ich versuche derzeit herauszufinden, wie auf Metadaten zugegriffen werden kann, wenn der Aufruf store.findRecord() verwendet wird.Ember.js: Zugriff auf JSON-API-Metadaten über den store.findRecord-Aufruf

In den Führungen (http://guides.emberjs.com/v2.1.0/models/handling-metadata/) heißt es, dass Metadaten, indem Sie die folgenden zugegriffen werden kann:

store.query('post').then((result) => { 
    let meta = result.get('meta'); 
}) 

Ich hatte gehofft, dies funktionieren würde, wenn findRecord auch

store.findRecord('book', params.id, {adapterOptions: {query: params}}).then((result) => { 
    let meta = result.get('meta'); 
}) 

jedoch mit diesem immer gibt für die Eigenschaft meta undefined zurück. Ich nehme an, dass Metadaten nicht gesetzt werden, wenn findRecord verwendet wird. Ich kehre gültige JSON-API mit einem meta Eigenschaft auf der obersten Ebene wie folgt aus:

{ 
    "meta": { 
    "page": { 
     "number": 1, 
     "size": 100, 
     "total": 20 
    }, 
    "data":[ 
     // data here 
    ] 
    } 
} 

Gibt es eine Möglichkeit, die Metadaten vom Server zurück zuzugreifen, wenn Findrecord() und die JSONAPISerializer und JSONAPIAdapters mit?

Vielen Dank!

Ich verwende die folgenden Versionen:

Ember    : 2.1.0 
Ember Data  : 2.1.0 
jQuery   : 1.11.3 
+0

Ist der Datensatz bereits im Speicher vorhanden, wenn Sie den findRecord ausführen? –

+0

Guter Gedanke, aber es ist nicht schon im Laden vorhanden. Ich habe auch überprüft, um sicherzustellen, dass im Chrome Inspector, dass die Netzwerkanforderung gemacht wird und es ist. Ich fange an zu denken, dass dies gerade nicht unterstützt wird. Basierend auf einigen Diskussionen in slack scheint der Metaschlüssel nur für Sammlungen zu funktionieren. – Sarus

+0

Werfen Sie einen Blick auf die Ember Guides auf 'query' vs.' queryRecord' vs 'findRecord' usw. Ich denke, was Sie mit' findRecord' versuchen ist nicht möglich: http: //guides.emberjs. com/v2.1.0/models/finding-records/ – vikram7

Antwort

2

Metadaten werden nicht unterstützt pro-Satzbasis, können Sie sie zu haben verfügbar zählen können, wenn Sie store.query() oder wenn das Abrufen Beziehungen nutzen. Zitiert:

Vorerst Ember Daten verstehen nur ein Top-Level-Meta-Objekt auf Abfragen und Beziehungen (durch weiterführende Links).

Werfen Sie einen Blick auf die folgenden Github thread für weitere Informationen.

+2

FYI Ich postete hier auf eine Weise, die Sie dies erreichen können: http://stackoverflow.com/questions/35514055/how-to-access-top-level-meta-key-from-json-api-servers-200-response -when-callin/38312846 # 38312846 – Sarus

Verwandte Themen