EmberJS过滤器有多个数据,适用于belongsTo关系

时间:2017-03-05 15:44:52

标签: ember.js ember-model

我有这个团队模型:

export default DS.Model.extend({
    "name": attr('string'),
    "players": DS.hasMany('player',{
        async: true
    })
});

以及这个玩家模型:

export default DS.Model.extend({
    "name":  attr('string'),
    "status": attr('string'),
    "team": DS.belongsTo('team',{
        async: true
    })
});

如果我想列出所有球队,那就够了。如果我想列出所有球队,并且在每支球队内,列出所有球员......也很简单。

{{#each teams as |team index|}}
    <strong>{{team.name}}</strong></br>
    <em>Players</em>
    <ul>
    {{#each team.players as |player|}}
        <li>{{player.name}} - {{player.status}}</li>
    {{/each}}
    </ul>
{{/each}}

我的问题......让我们说某些球员受伤了。如果我在团队中循环,我将如何仅展示受伤球员的球队。如果至少有一名球员受伤,TEAM将显示,如果不是......球队将不会显示?

2 个答案:

答案 0 :(得分:2)

您可以尝试使用isAny

players方法进行过滤
export default Ember.Route.extend({
    model() {
        return this.store.findAll('team').then((teams)=>{
            return teams.get('players').then((players) => {
                return players.isAny('status','injured');
            })
        })
    }
})

答案 1 :(得分:1)

请查看this twiddle