【问题标题】:Stop route navigation after close mat dialog关闭垫子对话框后停止路线导航
【发布时间】:2020-06-18 02:42:06
【问题描述】:

我有这个代码:

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 和 preventDefault 但没有成功。提前谢谢,对不起英语。

【问题讨论】:

    标签: angular angular-material angular6 material-design


    【解决方案1】:

    您可以使用 MatDialog 组件的 'afterClosed()' 方法,然后订阅它。在 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'是一个参数,你可以在MatDialog的'close()'方法中传递。

    【讨论】:

    • 这个想法是 stopPropagation 和 preventDefault 不起作用
    猜你喜欢
    • 2019-01-20
    • 2021-08-27
    • 2021-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-17
    • 1970-01-01
    相关资源
    最近更新 更多