Как вернуться на определенную страницу, очистив историю маршрутизации, используя Angular Router / Location - PullRequest
0 голосов
/ 07 января 2019

Возвращение на домашнюю страницу с очисткой истории маршрутизации - мое требование

Я пробовал с кодом ниже. Но все приведенные ниже коды не соответствовали моему требованию.

this.router.navigate(['/services/paymentProcessing'], { skipLocationChange: true });

ngOnDestroy(): void {
    window.history.go(-4);
    this.location.back();
    this.router.navigate(['/services/#SH']);
  }

Мне нужно вернуться на домашнюю страницу / конкретную страницу со своей конкретной страницы, очистив историю маршрутизации. Может кто-нибудь дать мне знать решение

1 Ответ

0 голосов
/ 08 января 2019

Обращаясь к ответам на Как обнаружить событие кнопки «Назад» в браузере - Кросс-браузер и Как я могу обнаружить пользователя, возвращающегося назад в Angular2? , я хочу сообщить вам решение для вышеуказанной задачи.

Для возврата на определенную страницу, пропустив текущую страницу, вы можете использовать код

this.router.navigate(["/C"], { replaceUrl: true });

как сказал г-н Старк Буттовски

И затем, если вы хотите остаться на текущей странице (в моем случае HomePage) без очистки истории,

import { Location } from "@angular/common";

constructor(public location: Location){}

ngOnDestroy(): void {
    this.location.subscribe(
      x=> history.pushState(null, null, window.location.pathname)
    );
  } 

чтобы можно было блокировать навигацию по кнопкам назад.

Если есть, какие-нибудь лучшие строки кода, с нетерпением жду ..

Ищу ответ, который лучше, чем выше

...