Angular 7 Router - есть ли способ выскочить на верхний маршрут? - PullRequest
0 голосов
/ 19 марта 2019

У меня есть загрузочный модал в моем приложении, и я хотел бы, чтобы он отображался в истории просмотров, когда он открыт, поэтому, когда пользователь нажимает кнопку возврата браузера - модал закрывается.

I 'Я знаком с объектом Angular Location, поэтому Location.back() и Location.go() отлично работают для моего сценария .

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

Любой способ добиться этого с помощью Angular Router / Местоположение / любой другой способ Angular-ish?

1 Ответ

0 голосов
/ 19 марта 2019

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

`import { Injectable } from '@angular/core';
import { Router } from '@angular/router';
import { PostItDialog } from './post-it-dialog.component';
import { Location } from '@angular/common';
import { MatDialog } from '@angular/material/dialog';`

    `public openPostItDialog(dialog: MatDialog): void {
        const dialogRef = dialog.open(PostItDialog, {
          width: '350px'
        });
        const url = this.router.createUrlTree(['posts/new']).toString();
        this.location.go(url);
        console.log("Dialog was open");

        dialogRef.afterClosed().subscribe(() => {
          console.log("The dialog was closed");
          this.location.go("");
        })`
...