我很贪图并尝试编写一个计算属性,根据用户模型中定义的'state'属性检查用户是否在线,然后返回用户数的计数线上。这是我一直在尝试的,这是行不通的 -
onlineUsers: function() {
return this.get("model").filterBy("state", "online").get("model.length");
}.property("'model.[]'"),
这是我的用户模型 -
App.User = DS.Model.extend({
name : DS.attr('string'),
email : DS.attr('string'),
state : DS.attr('string'),
subjects : DS.hasMany('subject')
});
有谁可以指出我做错了什么?
答案 0 :(得分:2)
您需要使用model.@each.state
onlineUsers: function() {
return this.get("model").filterBy("state", "online").get("length");
}.property("model.@each.state"),
最后model.length
最终不起作用,因为filterBy
的结果是一个新数组,你想要那个数组的长度。