Bonjour,
Voici mon exemple simplifi� :
Ci-dessous, la classe que je stocke dans firebase par des push :
Ici la Data Service, qui se connecte � Firebase :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6 export class Message { author: string; content: string; concat(): string { return this.author + ' :' + this.content; }
Et finalement le app.component :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11 export class MessageService { lstMessages: FirebaseListObservable<Message[]>; constructor(private af: AngularFire) { this.lstMessages = af.database.list('/messages'); } getLastest(): Observable<Message[]> { return this.lstMessages; } send(msg: Message) { this.lstMessages.push(msg); } }
Au final �a fonctionne dans la mesure o� je r�cup�re bien un Object[] avec mes champs, mais ce n'est pas vraiment des Message (class). Ainsi, si j'appelle depuis le r�sultat la m�thod concat (), j'obtiends une erreur :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7 export class AppComponent { messages: Message[] = []; constructor(private msgService: MessageService) { this.msgService.getLastest().subscribe( (data: Message[]) => { this.messages = data; console.log(this.messages[0].concat()); } ); }
Bien s�r, �a fonctionne si je r�cr�e l'objet :FIREBASE WARNING: Exception was thrown by user callback. TypeError: _this.messages[0].concat is not a function
at SafeSubscriber._next
Mais �a n'a plus aucun int�r�t...
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6 this.msgService.getLastest().subscribe( (data: Message[]) => { data.forEach( (items) => this.messages.push(new Message(items.author, items.content) ) );} )
Savez-vous comment r�cup�rer ou traiter le data pour qu'il corresponde bien � ma classe .?
D'avance merci,
Mand.Net
Partager