Meine Daten sind nach dem Ändern der Route verschwunden.Daten nach dem Ändern der Route gegangen
Szenario:
CommentComponent (Data dargestellt) -> ChangeRoute -> CommentComponent (keine Daten gezeigt)
Die Daten nur beim ersten Last gezeigt, aber dann ist es weg, wenn ich die Route ändern.
fand ich diese Frage mit meinem Fall/Ausgabe ähnlich aussieht: No data for FireStore after use of routerlink
Aber keiner der Kommentare/Antwort ist hilfreich. Also habe ich beschlossen, diese Frage zu stellen.
COMPONENT.HTML: comment.component.html
:
<ng-template #noComments>
<h1>No comment yet.</h1>
</ng-template>
<div *ngIf="comments?.length > 0; else noComments">
<h1 style="margin-bottom: 3.5vh;">Comments</h1>
<ul *ngFor="let comment of comments">
<li>
<mat-card>
<h3>{{comment.name}}</h3>
<p>{{comment.comment}}</p>
</mat-card>
</li>
</ul>
</div>
COMPONENT.TypeScript: comment.component.ts
:
SERVICE: comments.service.ts
:
import { Injectable } from '@angular/core';
import { Comment } from '../models/comment';
import { Observable } from 'rxjs/observable';
import { AngularFirestore, AngularFirestoreCollection, AngularFirestoreDocument } from 'angularfire2/firestore';
@Injectable()
export class CommentService {
commentsCollection: AngularFirestoreCollection<Comment>;
comments: Observable<Comment[]>;
constructor(public afs: AngularFirestore) {
this.commentsCollection = this.afs.collection('comments');
this.comments = this.commentsCollection.valueChanges();
}
getComments() {
return this.comments;
}
}
MODELL: comments.ts
:
export interface Comment {
name: string;
comment: string;
}
[GELÖST]
Hier ist, wie:
In comment.service.ts
, tun Sie etwas aus:
constructor(public afs: AngularFirestore) {
this.commentsCollection = this.afs.collection('comments');
this.comments = this.commentsCollection.valueChanges();
}
getComments() {
return this.comments;
}
Um dies:
constructor(public afs: AngularFirestore) {
}
getComments() {
this.commentsCollection = this.afs.collection('comments');
return this.comments = this.commentsCollection.valueChanges();
}
Sorry nicht wirklich folgen, was meinst du mit Daten gegangen, wenn Sie die Route ändern. Wenn Sie also die Route ändern, wird die Komponente zerstört. Daher sind alle Daten, die sich auf den Komponentenstatus beziehen, nicht mehr vorhanden. Wechseln Sie auf eine völlig andere Route oder wird die Kommentarkomponente noch gerendert? Oder meinst du, du gehst auf eine andere Route und kommst zurück zur Kommentarkomponente? –
@HugoNoro Ja, gehe zu einer anderen Route und dann wieder zurück, um Komponenten zu kommentieren. Daten wurden vorher angezeigt, dann ging ich auf andere Route und wieder zurück auf Kommentarroute, die Daten sind weg. –
Danke, du bist mein Retter. –