8

我需要知道特定资源(App.User)总共存在多少行。

我试图返回它作为回应,但 Ember 抱怨没有映射属性并且只需要记录数组 ( users: [ "john", "fred"])。我不想对服务器进行额外的查询。

有没有什么干净的方法可以用 Ember 实现这一目标?

4

3 回答 3

4

您无需对服务器进行额外的查询。从服务器获取数据存储区中的数据后,它会一直保留在那里,除非某些记录是脏的并且您运行store.commit

所以,在你得到你的记录后说

users = App.User.find()

你可以简单地做users.get('length'),你会得到长度。执行此操作时,不会生成对服务器的附加查询。

于 2012-10-03T13:11:53.903 回答
4

如果您想在车把模板中使用它,您可以执行{{this.length}}.

于 2014-07-28T18:12:05.897 回答
0

我通过handleResponse在我的适配器中实现并以 Ember 期望的方式修改响应来解决了这个问题。

假设我从服务器收到类似于以下内容的响应:

{
  "count": 203,
  "users": {...} //user data conforming to model 
} 

我的handleResponse实现如下所示:

handleResponse (status, headers, payload, requestData) {
  let parsedPayload = {
    users: payload.users,
    meta: {
      total: payload.count
    }
  };
  return this._super(status, headers, parsedPayload, requestData);
}

然后我可以通过Ember 文档指定的方式获取模型元数据

于 2017-09-10T16:33:41.650 回答