基于模型属性的ember计算属性

时间:2013-12-19 12:02:57

标签: ember.js ember-data

我很贪图并尝试编写一个计算属性,根据用户模型中定义的'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')    
});

有谁可以指出我做错了什么?

1 个答案:

答案 0 :(得分:2)

您需要使用model.@each.state

onlineUsers: function() {
  return this.get("model").filterBy("state", "online").get("length");
}.property("model.@each.state"),

最后model.length最终不起作用,因为filterBy的结果是一个新数组,你想要那个数组的长度。