2017-04-11 20 views
0

観測対象にマッピングされたデータをレンダリングする際に問題があります。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 {?。のdisplayName} {(?非同期チャットの.info)}の中| async).displayName}} 'なぜasyncをもう一度使うの?それはループの中で必要ではありません –

+0

ありがとう、私はそれを知らなかった。しかし、{{chat.info.displayName}}に変更しても違いはありません。データはまだレンダリングされません。 – Stefan

+0

'getChats()' printの 'console.log(chats)'は何ですか?サーバ側からdisplaynameを取得していない可能性があります。 –

答えて

0

問題はhtmlテンプレートにあります。私が変更された後

それは働いていた{{(chat.info |非同期).displayName}} |

関連する問題