2015-11-12 7 views
5

store.findRecord()呼び出しを使用してメタデータにアクセスする方法を現在検討しています。ガイド(http://guides.emberjs.com/v2.1.0/models/handling-metadata/)でEmber.js:store.findRecordコールからJSON APIメタデータにアクセスする方法

それはメタデータは以下のようにしてアクセスできることを言う:

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

しかし、これは常に

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

findRecordを使用しているとき、私はこれが働くだろう期待していましたmetaプロパティでは未定義を返します。 findRecordを使用しているときにメタデータが設定されていないと仮定しています。

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

findRecord()とJSONAPISerializerとJSONAPIAdaptersを使用した場合、サーバから返されたメタデータにアクセスする方法はあります:私はこのようなトップレベルでmetaプロパティで有効なJSON-APIを返すのですか?

ありがとうございました!

私は、以下のバージョンを使用しています:

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

findRecordを実行しているときにレコードが既に店舗に存在していますか? –

+0

良い考えですが、店舗にはまだ存在していません。私はまた、ネットワークの要求が行われていることをクローム・インスペクタで確かめることを確認しました。私はこれが今サポートされていないと思っています。余裕のある議論に基づいて、メタキーはコレクションのみで動作するようです。 – Sarus

+0

'query'対' queryRecord'と 'findRecord'などEmber Guidesを見てください。' findRecord'でやろうとしていることはできません。 http://guides.emberjs。 com/v2.1.0/models/finding-records/ – vikram7

答えて

2

メタデータごとのレコードの基礎、あなたがstore.query()を使用する場合は、それらが利用可能になるか、関係をフェッチするときのカウントすることができ、サポートされていません。 引用:

今のところ、Ember Dataはクエリとリレーションシップ(関連リンクを介して)のトップレベルのメタオブジェクトのみを理解しています。

詳細については、次のgithub threadを参照してください。

+2

FYIこれを実現する方法をここに掲載しました:http://stackoverflow.com/questions/35514055/how-to-access-top-level-meta-key-from-json-api-servers-200-response -when-callin/38312846#38312846 – Sarus

関連する問題