Ember过滤的模型条目计数

时间:2014-04-21 10:51:43

标签: javascript ember.js

我试图获取Ember Data Store过滤器的结果数量。 E.g

var users = this.store.filter('relevantUser', function(user)
{
    return user.get('screenName') == screenName;
});

return user.get('length');

但这似乎总是回归0.我做错了什么?

1 个答案:

答案 0 :(得分:0)

我认为它应该是users.get('length');。 在使用商店的过滤方法时要确定的事项。

  • 第一个参数是模型类型。假设您有一个名为App.RelevantUser的模型,那么您的查询就可以了,否则如果该模型是App.User,那么您应该使用'user'。
  • var users实际上是DS.PromiseArray实例,实际上不是数组。试试这个 this.store.filter('relevantUser',function(user){return user.get('screenName')==screenName}).then(function(relevantUsers){console.log(relevantUsers.get('length'))})

当store.filter也在查询服务器时,我们需要在访问结果之前等待承诺解析。否则他们总是0。 如果你正在使用Chrome。在Dev Tools中打开Network选项卡,并在运行过滤器查询时检查发送到服务器的网络请求。