1
问题在于chat.name起初显示一个空白,因为映射尚未完成。在更新数据之前有什么方法可以等待映射吗?我该如何等待Angularfire 2中的观察值?
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>
其实,我看到了一个已经在不久前。我可以显示值。只是一旦我推送消息,它会保持空白几秒钟,然后显示chat.name。 – Hey
我没有UI代码来查看,所以在这里提供任何指导都很难。 –
我刚刚编辑我的帖子。对于那个很抱歉。问题是,起初它会显示最后一条消息,几秒钟后它将显示chat.name。谢谢。 如果我试图用div来包装它并做一个* ngIf,那么当有新的更新时,它会令用户烦恼。 谢谢 – Hey