2014-03-28 108 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

我會試試這個,但它看起來像我想要的,因爲它正在訪問元數據,而不是打任何代碼路徑最終發出遠程請求。 –