我试图获取Ember Data Store过滤器的结果数量。 E.g
var users = this.store.filter('relevantUser', function(user)
{
return user.get('screenName') == screenName;
});
return user.get('length');
但这似乎总是回归0.我做错了什么?
答案 0 :(得分:0)
我认为它应该是users.get('length');
。
在使用商店的过滤方法时要确定的事项。
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选项卡,并在运行过滤器查询时检查发送到服务器的网络请求。