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

时间:2015-04-30 06:00:57

标签: ember-data ember-cli

在Ember-CLI中,如何检索/存储模型集合元数据?

例如,假设我有一个模型'用户'使用一些已定义的属性,我的路由检索具有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?

1 个答案:

答案 0 :(得分:1)

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

如果您从API返回以下结构:

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

然后你应该可以使用:

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

并访问meta.user_count

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

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