问题是chat.name首先显示空白,因为映射尚未完成。有没有办法在更新数据之前等待映射?
this.chats = this.af.database.list('/chats/' + this.mainService.getUserId(), {
query: {
orderByChild: 'timestamp'
}
}).map((chats) => {
return chats.map( chat => {
chat.name = this.af.database.object(`/users/${chat.uid}`);
return chat;
})
});
这是用户界面。
<ul>
<li *ngFor="let chat of chats | async">
{{ (chat.name | async)?.name }} : {{ chat.lastMessage }}
</li>
</ul>
答案 0 :(得分:1)
请参阅此回答 - Nested Observables in Angular2 using AngularFire2 not rendering in view
但我怀疑你需要将elvis操作符添加到HTML页面
{{ chat?.name }}