如何接受模型集合元数据,例如 ember 中的计数?

How to accept model collection metadata, such as count in ember?

在 Ember-CLI 中,如何处理 retrieving/storing 模型集合元数据?

例如,假设我有一个带有一些已定义属性的模型 'user',并且我的路由使用 ember-data 检索用户集合,如下所示:

  model: function(params) {
    return this.store.findQuery('user', params);
  }
});

我的 API 的 JSON 回复看起来像这样:

{ users: [{id: 1, name: 'Bob'}, {id: 2, name: 'Joe'}]}

现在,我想添加分页,这意味着我需要在 API 响应中的某处计算总用户数,因此它看起来像这样:

{ user_count: 5,
users: [{id: 1, name: 'Bob'}, {id: 2, name: 'Joe'}]}

这很简单,但是如何从我的 Ember 控制器访问 user_count?

因此,如果您控制 API,那么您可以使用 Ember 数据(使用 DS.RESTAdapter)提供的对元数据的内置支持。

如果您 return 来自 API 的以下结构:

{
  "users": [{
    "id": 1,
    "name": "Bob"
  }, 
  {
    "id": 1,
    "name": "Bob"
  }],
  "meta": {
    "user_count": 5
  }
}

那么你应该可以使用:

var meta = this.store.metadataFor("users");

并访问 meta.user_count

Ember 指南 (v1.10.0) 中有更多信息:http://guides.emberjs.com/v1.10.0/models/handling-metadata/

如果您不负责 API 您可以使用序列化程序正确格式化元数据。如果您需要更多信息,请告诉我。