Ich habe festgestellt, dass mein Angular2-Abonnement nur beim Laden der Seite ausgelöst wird. Wenn ich eine weg von und dann zu meinem home.component die checkUser()
Funktion startet nicht startet.Angular2 mit Abonnements mit Routenwechsel
Zum Beispiel habe ich einen RouterLink auf eine separate Seite eingerichtet (ungefähr). Wenn ich in meiner About-Seite einen RouterLink auf meine Homepage zurückstelle, funktioniert meine checkUser()
-Funktion von home.component nicht.
Was ist der beste Weg, um meine Abonnements mit diesen Routenänderungen arbeiten zu lassen?
Mein home.component
export class HomeComponent implements OnInit {
private username$: FirebaseObjectObservable<string>;
private dashlink: boolean;
private logsub: Subscription;
constructor(private mainService: MainService){
}
checkUser(){
this.logsub = this.mainService.userThere$.subscribe(isUser => {
if (isUser){
alert("Yes");
}
});
}
ngOnInit(){
this.checkUser();
}
}
Was Sie beschrieben haben klingt richtig. ngOnInit sollte jedes Mal aufgerufen werden, wenn die Route erreicht wird. Vielleicht im Zusammenhang mit https://github.com/angular/angular/issues/8012 – Fiddles