我需要知道特定资源(App.User)的总行数。
我试图回复它,但是Ember抱怨没有映射属性,并且只期望记录数组(users: [ "john", "fred"]
)。我不想对服务器进行额外的查询。
Ember有没有干净的方法来实现这个目标?
答案 0 :(得分:4)
您无需向服务器进行其他查询。从服务器获取数据存储区中的数据后,除非某些记录变脏且运行store.commit
所以,在你通过说
得到你的记录之后users = App.User.find()
你可以简单地users.get('length')
来获得长度。执行此操作时,不会生成对服务器的其他查询。
答案 1 :(得分:4)
如果您想在把手模板中使用此功能,可以执行{{this.length}}
。
答案 2 :(得分: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);
}
的方式获取模型元数据