Я обнаружил, что моя подписка на Angular2 срабатывает только при загрузке страницы. Когда я установил routerLink
, а затем на мой home.component функция checkUser()
не запускается.Angular2 с использованием подписки с изменением маршрута
Например, я установил routerLink на отдельную страницу (около). Если на моей странице я установил routerLink на свою домашнюю страницу, моя функция checkUser()
от home.component не работает.
Каков наилучший способ заставить мои подписки работать с этими изменениями маршрута?
Мой 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();
}
}
То, что вы описали, звучит правильно. ngOnInit следует вызывать каждый раз при ударе маршрута. Возможно, связано с https://github.com/angular/angular/issues/8012 – Fiddles