Предыдущий вопрос:
Я пытался переместить пользователя на главную страницу (вместо предыдущей страницы), если пользователь нажал на кнопку возврата браузера .
Решение:
Я использовал комбинацию candeactivateguard, hostlistener.Не забудьте объявить свою охрану в провайдере в файле модуля.
deactivate.guard.ts
import { Injectable } from "@angular/core";
import { CanDeactivate } from "@angular/router";
export interface CanComponentDeactivate {
canDeactivate(): boolean;
}
@Injectable()
export class DeactivateGuard implements CanDeactivate<CanComponentDeactivate> {
canDeactivate(component: CanComponentDeactivate): boolean {
return component.canDeactivate();
}
}
lastpage.component.ts
import { Component, OnInit, Inject, HostListener } from "@angular/core";
export class LastPageComponent implements OnInit {
disableSuccessNav = false;
ngOnInit() {}
constructor()
//detects browser back button
@HostListener("window:popstate")
onPopState() {
this.disableSuccessNav = true;
}
canDeactivate() {
return !this.disableSuccessNav;
}