EmberJS filter hasMany data,应用于belongsTo关系
EmberJS filter hasMany data, apply to belongsTo relationship
我有这个团队模型:
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}}
我的问题...假设某些球员受伤了。如果我在球队中循环,我将如何只显示有受伤球员的球队。如果至少有一名球员受伤,则球队会显示,如果没有...球队不会显示?
您可以尝试使用 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');
})
})
}
})
我有这个团队模型:
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}}
我的问题...假设某些球员受伤了。如果我在球队中循环,我将如何只显示有受伤球员的球队。如果至少有一名球员受伤,则球队会显示,如果没有...球队不会显示?
您可以尝试使用 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');
})
})
}
})