2017-02-16 26 views
0

我是Ember的新手,試圖找出用Ember過濾數據的最佳方法。我認爲這是通過創建幫手或組件來實現的,但我嘗試實施這些解決方案失敗了。EmberJS過濾器從商店返回數據

今天讀了很多關於這個,並嘗試了幾個選項,我的大腦傷害,我沒有接近結果。

我正在爲即將到來的賽季制定一個時間表。該模板目前呈現所有遊戲。這個想法是當你點擊一個球隊的名字時,你只會看到該球隊的比賽。顯示的數據正在存儲在Firebase中(如此EmberFire)。

能夠按日期過濾也是不錯的,但我認爲這是未來的紅色問題。

對不起,我的問題含糊不清,我知道我想做什麼,我只是不知道如何到達那裏。

謝謝! 紅色

回答

0

因此,它聽起來像你想使用查詢參數來指定要過濾的團隊。在你Controller,指定queryParams屬性,然後創建一個計算的屬性,返回從模型中過濾列表:

queryParams: ['selectedTeam'], 
selectedTeam: null, 
filteredGames: Ember.computed('selectedTeam', 'model', function() { 
    let selectedTeam= this.get('selectedTeam'); 
    let model= this.get('model'); 

    if (selectedTeam) { 
    return model.filterBy('team', selectedTeam) 
    } 
    else { 
    return model; 
    } 

然後,在你的模板,而不是使用model,使用filteredGames

{{#each filteredGames as |game|}} 
    ... render the {{game}} ... 
{{/each}} 

希望有所幫助。

+0

謝謝史蒂夫!你的建議很有道理,今天晚些時候我會試一試:) queryParams部分的灰燼指南粘滯參數可能只是解決了這個問題。我想我可能需要改變我的數據如何與關鍵字:值配對一起存儲。 –