7.10 Models--Handling Metadata(メタデータの処理)
1943 ワード
1.storeから返されるrecordsに従って、メタデータを処理する必要がある場合があります.Metadataは、recordではなく、特定のmodelまたはtyepを伴うデータである.
2.ページングはメタデータを使用する一般的な例です.ブログに一度に表示できるより多くのpostsがあることを想像してください.このように問い合わせるかもしれません.
3.異なるページのデータを得るために、offsetを10に簡単に変更することができます.ここまで、万事順調です.しかし、あなたが何ページのデータを持っているか知っていますか?サーバは、メタデータの一部としてrecordsの合計数を返す必要があります.
4.各シーケンス化は、異なるメタデータを返すことを望む.たとえば、Ember DataのJSON逆シーケンス化器はmetaキーを検索します.
5.どのようなシーケンサを使用しても、このメタデータは応答から抽出されます.使用することができますget('meta')で読み込みます.
6.storeを呼び出すことができます.query()の結果で完了します.
7.belongsTo関係で:
またはhasMany関係で:
8.それを読み取る後、meta.totalは、何ページあるかを計算するために使用できます.
2.ページングはメタデータを使用する一般的な例です.ブログに一度に表示できるより多くのpostsがあることを想像してください.このように問い合わせるかもしれません.
let result = this.store.query("post", {
limit: 10,
offset: 0
});
3.異なるページのデータを得るために、offsetを10に簡単に変更することができます.ここまで、万事順調です.しかし、あなたが何ページのデータを持っているか知っていますか?サーバは、メタデータの一部としてrecordsの合計数を返す必要があります.
4.各シーケンス化は、異なるメタデータを返すことを望む.たとえば、Ember DataのJSON逆シーケンス化器はmetaキーを検索します.
{
"post": {
"id": 1,
"title": "Progressive Enhancement is Dead",
"comments": ["1", "2"],
"links": {
"user": "/people/tomdale"
},
// ...
},
"meta": {
"total": 100
}
}
5.どのようなシーケンサを使用しても、このメタデータは応答から抽出されます.使用することができますget('meta')で読み込みます.
6.storeを呼び出すことができます.query()の結果で完了します.
store.query('post').then((result) => {
let meta = result.get('meta');
})
7.belongsTo関係で:
let post = store.peekRecord('post', 1);
post.get('author').then((author) => {
let meta = author.get('meta');
});
またはhasMany関係で:
let post = store.peekRecord('post', 1);
post.get('comments').then((comments) => {
let meta = comments.get('meta');
});
8.それを読み取る後、meta.totalは、何ページあるかを計算するために使用できます.