Ember.js如何从JSON中获取元信息

5

我从服务器得到了一段JSON数据:

{
  "post": {
    "id": 1,
    "title": "Progressive Enhancement is Dead",
    "comments": ["1", "2"],
    "links": {
      "user": "/people/tomdale"
    }
  },

  "meta": {
    "total": 100
  }
}

希望您的代码与文档(https://guides.emberjs.com/v2.5.0/models/handling-metadata/)完全一致,我尝试获取元对象但没有成功。

export default Ember.Route.extend({
  model() {
    var data = this.store.findAll('post');
    data.then((result) => {
      let meta = result.get('meta');
      console.log(meta); //this return me undefined
    })
    return data;
  }
});

你使用的Ember版本是什么? - Jovica Šuša
最新版本为 2.5.1。 - Michael
看起来对于一个记录元数据来说这是不可能的,我觉得你只有一个post,也许这就是问题所在。 - Jovica Šuša
我只是从示例中删除了一些记录,并且这是关于不同的问题讨论。我直接从文档中获取了我的示例,所以你认为这是一个Ember的错误还是来自我的代码? - Michael
我不确定,你的代码看起来很好,但我怀疑这是Ember的bug。我看到的唯一区别是在文档中他们使用store.query()而你正在使用findAll。 - Jovica Šuša
感谢您的帮助。 - Michael
1个回答

6

您正在使用findAll方法,该方法不支持元数据。如果您想获取带有元数据的多个帖子,则应改用this.store.query('post', {/*params*/})方法。


好的,谢谢你,你是对的,但我不明白为什么我不能使用findAll方法(https://guides.emberjs.com/v2.4.0/models/finding-records/),这对我来说有点模糊。 - Michael
我猜原因是,Ember 在执行 findAll 时期望从 API 返回 EVERYTHING,因此不需要任何元数据。但这只是我的猜测,可以解释这种行为。 - Jeff

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接