2017-02-16 28 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部分的灰烬指南粘滞参数可能只是解决了这个问题。我想我可能需要改变我的数据如何与关键字:值配对一起存储。 –