问题是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>