Остановить навигацию по маршруту после закрытия диалогового окна - PullRequest
0 голосов
/ 05 марта 2020

У меня есть этот код:

openPopup(event) {
    event.preventDefault();
    event.stopPropagation();
    this.dialog.closeAll();
    this.modalService.open(
        this.templateModal,
        this.translateService.instant('dialog.project.title'),
        this.translateService.instant('dialog.project.btn_title'),
        null,
        '600'
    );
    return false;
}

В html у меня есть:

<a (click)="openPopup($event);">
    {{'dialog.click' | translate}}
</a>

После нажатия я закрываю предыдущий диалог с матом, открываю новое всплывающее окно и Я перенаправлен на URL, который я поставил в качестве обратного вызова, когда предыдущий закрыт. Как я могу остановить это перенаправление в этой функции: openPopup? Я пытался с StopPropagation и предотвращать дефолт, но безуспешно. Спасибо заранее и извините за английский sh.

1 Ответ

0 голосов
/ 05 марта 2020

Вы можете использовать метод afterClosed () компонента MatDialog, а затем сделать на него подписку. Он будет вызван после уничтожения MatDialog.

this.modalService.open(
        this.templateModal,
        this.translateService.instant('dialog.project.title'),
        this.translateService.instant('dialog.project.btn_title'),
        null,
        '600'
).afterClosed().subscribe(conditionToOpenUrl => {
  if(conditionToOpenUrl) {
    // logic to open url
  }
});

Аргумент 'conditionToOpenUrl' - это параметр, который можно передать в метод 'close ()' MatDialog.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...