我需要知道特定资源(App.User)总共存在多少行。
我试图返回它作为回应,但 Ember 抱怨没有映射属性并且只需要记录数组 ( users: [ "john", "fred"]
)。我不想对服务器进行额外的查询。
有没有什么干净的方法可以用 Ember 实现这一目标?
我需要知道特定资源(App.User)总共存在多少行。
我试图返回它作为回应,但 Ember 抱怨没有映射属性并且只需要记录数组 ( users: [ "john", "fred"]
)。我不想对服务器进行额外的查询。
有没有什么干净的方法可以用 Ember 实现这一目标?
您无需对服务器进行额外的查询。从服务器获取数据存储区中的数据后,它会一直保留在那里,除非某些记录是脏的并且您运行store.commit
所以,在你得到你的记录后说
users = App.User.find()
你可以简单地做users.get('length')
,你会得到长度。执行此操作时,不会生成对服务器的附加查询。
如果您想在车把模板中使用它,您可以执行{{this.length}}
.
我通过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 文档指定的方式获取模型元数据