【发布时间】:2016-02-14 00:57:52
【问题描述】:
我目前正试图弄清楚在使用 store.findRecord() 调用时如何访问元数据。
在指南 (http://guides.emberjs.com/v2.1.0/models/handling-metadata/) 中,它说可以通过执行以下操作来访问元数据:
store.query('post').then((result) => {
let meta = result.get('meta');
})
我希望这在使用 findRecord 时也能工作
store.findRecord('book', params.id, {adapterOptions: {query: params}}).then((result) => {
let meta = result.get('meta');
})
但是,这总是为 meta 属性返回 undefined。我假设使用findRecord 时未设置元数据。我正在返回有效的 JSON-API,其顶级属性为 meta,如下所示:
{
"meta": {
"page": {
"number": 1,
"size": 100,
"total": 20
},
"data":[
// data here
]
}
}
在使用 findRecord() 和 JSONAPISerializer 和 JSONAPIAdapters 时,有没有办法访问服务器返回的元数据?
谢谢!
我正在使用以下版本:
Ember : 2.1.0
Ember Data : 2.1.0
jQuery : 1.11.3
【问题讨论】:
-
在进行 findRecord 时,该记录是否已经存在于商店中?
-
好主意,但它还没有出现在商店中。我还检查以确保在 chrome 检查器中正在发出网络请求并且确实如此。我开始认为这只是现在不支持。根据 slack 中的一些讨论,元键似乎只适用于集合。
-
在
queryvsqueryRecordvsfindRecord等上查看 Ember 指南。我认为您尝试使用findRecord做的事情是不可能的:guides.emberjs.com/v2.1.0/models/finding-records -
@vikram7 是的,我认为 findRecord 不支持开箱即用的元数据。我很好奇是否有解决方法。
-
你可以覆盖序列化器
标签: ember.js ember-data json-api