目标是在节点编号1中列出用户的所有待定约会。然后在节点编号2中检索此约会的一些数据,尤其是praticien Id,以最终获得有关此praticien的所有详细信息。 我可以使用以下代码将数据从数字1映射到数字2:
idPatient: string
pendingAppointment: any
noConnection: boolean
constructor(public navCtrl: NavController, public navParams: NavParams, public network: NetworkProvider, public firebaseProvider: FirebaseServiceProvider) {
this.idPatient = this.navParams.get('user')
this.pendingAppointment = this.firebaseProvider.list('patientList/'+this.idPatient+'/appointments/pending')
.map(appointments => {
return appointments.map(appointment => {
return this.firebaseProvider.object('appointments/' + appointment.$key )
})
})
..并在我的html中获取数据:
<div *ngFor="let appointment of pendingAppointment | async;let i = index">
{{ (appointment | async)?.praticien }}
</div>
但是我坚持这个愚蠢的问题。 如何映射3号节点并在html中检索3号节点的详细信息?
也许有人可以帮助我。
答案 0 :(得分:1)
我觉得这样的事情应该有用......
this.pendingAppointment = this.db.list('patientList/'+this.idPatient+'/appointments/pending').snapshotChanges().map(appointments => {
return appointments.map(appointment => ({
appointments: this.db.object('appointments/' + appointment.payload.key).valueChanges().map(
app => ({
place: this.db.object('practiciensDetails/' + app.practicien).valueChanges()
})
)
}));
});
然后为你的HTML,这样的事情:
<div *ngFor="let appointment of pendingAppointment | async;let i = index">
{{ (appointment | async)?.praticien }}
{{ ((appointment | async)?.place | async)?.firstname }}
</div>
希望这有帮助!经过几个小时的摆弄,我能够在我的项目中得到类似的东西。我记得我花了几天的时间来完成两个级别的第一步。在这种情况下,第三级实际上只归结为“映射”一个对象的语法,而不是一个让我永远找到的列表。