2017-04-11 77 views
0

我有一個問題來渲染映射到observable的數據。使用AngularFirebase/ionic2觀察地圖屬性

這是我的代碼的外觀:

// ChatService.ts 
 
getChats() { 
 
    return this.authService.getUid().then(uid => { 
 
     let chats = this.af.database.list(`/users/${uid}/chats`); 
 
     return chats; 
 
    }); 
 
} 
 

 
// Chatcomponent.ts 
 
chats: FirebaseListObservable<any[]>; 
 

 
this.chatService.getChats() 
 
    .then(chats => { 
 
     this.chats = chats.map(users => { 
 
      return users.map(user => { 
 
       user.info = this.af.database.object(`/users/${user.$key}`) 
 
       return user; 
 
      }); 
 
     }); 
 
    }) 
 
//The HTML File 
 
// chat.html 
 
<ion-item-sliding *ngFor="let chat of chats | async" (click)="openChat(chat.$key)"> 
 
    <p>{{chat.$key}}</p> 
 
    <span>{{(chat.info| async).displayName}}</span> 
 
</ion-item-sliding>

現在呈現頁面時,它顯示了聊天$關鍵正確,但chat.info.displayName不會呈現。

我在這裏做錯了什麼?

+0

' {{(chat.info | async).displayName}}'爲什麼要再次使用異步?它不需要在循環內 –

+0

謝謝,我不知道。但改爲{{chat.info.displayName}}沒有任何區別。數據仍然沒有呈現。 – Stefan

+0

'getChats()'中的console.log(聊天)是什麼?也許你沒有從服務器端獲取顯示名稱 –

回答

0

問題出在html模板中。

它的工作後,我改變{{(chat.info |異步).displayName}}到{{(聊天.INFO |?異步)?顯示名}}