В моем приложении Angular 7 я реализовал некоторый код, чтобы получить маршрут последней страницы для создания функциональности в стиле «кнопки назад». Кажется, он работает и устанавливает this.referringRoute при возникновении события, но если я попытаюсь сослаться на this.referringRoute где-нибудь еще в классе, оно не определено. Я использую функции стрелок в наблюдаемом, поэтому я предположил бы, что «это», указанное в подписке, правильно распределено по классу «это», есть какие-нибудь мысли о том, где я иду не так? спасибо :) 1001 *
export class DetailsComponent implements OnInit {
referringRoute: string;
ngOnInit(): void {
//get last page route and set to class variable
this.router.events
.pipe(filter((e: any) => e instanceof RoutesRecognized),
pairwise()
)
.subscribe((e: any) => {
this.referringRoute = e[0].urlAfterRedirects;
console.log("PREVIOUS URL:", this.referringRoute); // previous url, logs as expected
});
}
goBack() {
console.debug("close called:", this.referringRoute); // this.referringRoute is always undefined
if (this.referringRoute) {
this.router.navigate([this.referringRoute]);
} else {
this.router.navigate(['/plants/collections']);
}
}
}
goBack вызывается из шаблона следующим образом:
<div (click)="goBack()">