Post-Komponente abonniert Verhalten Subjekt und erhält eine Subskription von Posts. Das erste Mal funktioniert gut, aber wenn ich auf eine andere Seite gehe und zurückkomme, bekomme ich nur den letzten Wert der Beiträge, aber ich brauche die ganze Liste von Beiträgen wie beim ersten Mal.Das Verhaltensthema gibt nur den letzten Wert für die Routenänderungen aus
Beiträge Service:
public getPosts(): BehaviorSubject<Post> {
let postSubject: BehaviorSubject<Post> = new BehaviorSubject<Post>(Post.EMPTY_POST);
this.db.list(this.getModelPath()).subscribe((posts: Post[]) => {
posts.forEach((result) => {
let post: Post = Post.fromObject(result);
postSubject.next(post);
// code ommited
});
return postSubject;
}
die abonnierte Komponente: (post Listenkomponente)
public getPosts() {
this.showLoadingSpinner = true;
this._postService.getPosts().subscribe((post: Post) => {
if(Post.EMPTY_POST != post) {
this.showLoadingSpinner = false;
this.posts.push(post);
}
this.hasPostError = false;
}, (error) => {
this.loggerService.error(error);
this.showLoadingSpinner = false;
this.loggerService.log("error occured while getting posts.")
this.postErrorMessage = "error occured while getting posts.";
this.hasPostError = true;
},() => {
this.showLoadingSpinner = false;
if (!this.posts.length) {
this.postErrorMessage = "No posts to show!";
this.hasPostError = true;
}
})
}