2014-01-28 48 views
1

我有一個商店,其中包含用戶上傳的所有圖像。當他們上傳一組新圖片時,我會從上傳者那裏收到每張圖片的ID。然後他們被移動到一個新的路線,他們需要用元數據更新這些新上傳的圖像。我想使用以前的商店,但會過濾除了他們上傳的圖片之外的所有內容。使用Ember.JS對ID範圍內的模型進行過濾

所以問題是......如何僅通過一系列ID篩選商店。例如,如果我的上傳器返回[30,31,32]。我希望該視圖僅顯示這些圖像。

我認爲路由器應該有這樣的過濾器屬性,但我不知道。

App.PhotosDetailsRoute = Ember.Route.extend({ 
    model: function(params) { 
    return this.get('content').filterBy('id', id >= params[0]); 
    } 
}); 

任何幫助,將不勝感激。

回答

2

您將要使用的過濾器功能,我還不能肯定是在這種情況下,什麼樣的內容,但是這是當我使用this.get你如何使用過濾器

model: function(params) { 
    this.store.find('photos'); 
    return this.store.filter('photos', function(item){ 
    return item.get('id') >= 10; // dummy parameter 
    }); 
} 
+0

(「內容」)我收到錯誤「無法調用未定義的方法」過濾器。我正在使用Ember Data 1.0.beta.1。所以我嘗試使用存儲,因爲它尚未向端點發出請求。我最終收到一個布爾值,而不是將對象數據推送到模型中。任何想法我可以如何做到這一點不同? http://emberjs.jsbin.com/iveZuPax/3/edit –

+0

是的,我不知道什麼內容是什麼,我只是看到你在你的模型鉤子中,並認爲你一定是在別處分配它(例如像之前的模型鉤子什麼的)。如果您使用商店,則可以使用模型類型和函數調用過濾器,並且它會返回一個活動記錄數組(這意味着它將隨着新記錄進入系統而更新)。 'filter'不會從服務器獲取數據,所以在這種情況下,您需要在某個時刻調用find(在上面的例子中,我稱它爲之前)。 – Kingpin2k