2014-03-28 62 views
0

我有一个hasMany集合的模型,我想确定一个对象的ID是否存在于该集合中。Ember数据:通过ID过滤hasMany无需获取对象

var searchFor = "someid"; 
var filtered = parent.get('children').filter(function (item) { return item.get('child.id') == searchFor; }); 
var exists = filter.get('length') > 0; 

然而,这使得向child端点与所述过滤器的每次迭代中,这是不必要的,因为它知道的ID已经远程请求。有什么办法可以解决这个问题吗?

回答

2

我一直在处理同样的问题。我想出的最好的东西是:

var searchFor = "someid"; 
var filtered = parent.get('children').filter(function (item) { 
    return item.get('data').child.id == searchFor; 
}); 
var exists = filtered.get('length') > 0; 

这个工程(即不提出请求),但感觉不对。这适用于Ember 1.4.0和Ember Data 1.0.0-beta.3。

+0

我会试试这个,但它看起来像我想要的,因为它正在访问元数据,而不是打任何代码路径最终发出远程请求。 –