我正在尝试使用AngularFire2。我正在查询,下面一切正常。
我想将所有/大多数可观察物合并为一个:
getTournamentWithRounds(key):Observable<Tournament> {
return this.af.database
.object(`/tournaments/${key}`)
.map(tourney => {
let t = Tournament.fromJson(tourney);
this.af.database.list('players', {
query: {
orderByChild: 'tournament_key',
equalTo: key
}
})
.map(Player.fromJsonList)
.subscribe(ps => { t.players = ps; });
this.af.database.list('rounds', {
query: {
orderByChild: 'tournament_key',
equalTo: key
}
})
.map(Round.fromJsonList)
.subscribe(rs => { t.rounds= rs; })
return t;
})
}
Run Code Online (Sandbox Code Playgroud)
我想知道是否可以加入所有可观察对象,并通过一个订阅功能获得输出。
我想知道何时所有初始数据都已加载,并在将其输出到视图之前在控制器中执行其他计算。
另外,如何扩展到每轮比赛?
我对上述代码的扩展为:
...
this.af.database.list('rounds', {
query: {
orderByChild: 'tournament_key',
equalTo: key
}
})
.map(rounds => {
return rounds.map((round) => {
let r = Round.fromJson(round);
this.af.database.list('matches', …Run Code Online (Sandbox Code Playgroud) observable firebase firebase-realtime-database rxjs5 angularfire2