如何使用 MatdialogRef 显示对话框?

Posted

技术标签:

【中文标题】如何使用 MatdialogRef 显示对话框?【英文标题】:How to show the dialog with MatdialogRef? 【发布时间】:2020-04-05 19:48:23 【问题描述】:

我有一个服务调用来检索一些项目数据。我正在使用 MatSnackbar。

但我想在出现问题时显示对话框消息。例如网络已关闭。

所以在谷歌浏览器中,我选择离线选项。然后我想看看对话框。

但是对话框没有出现,但是会打印控制台消息。

所以我有这样的:


filterProjects(event, index, item) 
    if (event.checked === true) 
      this.extendedSearchFilterService.filterByProject(item.projectId).subscribe(
        () => 

        ,
        error => 
          console.error('Server error when getting the projects', error);
          this.snackBar.open('Er ging iets mis bij het ophalen van de projecten, probeer het later nog een keer', 'Ok');
          this.dialog.close();
        
      );

      this.datasource.filter = item.name;
     else 
      this.datasource.filter = '';
    
  

我在控制台中看到了这条消息:

list.component.ts:117 Server error when getting the projects HttpErrorResponse headers: HttpHeaders, status: 0, statusText: "Unknown Error", url: null, ok: false, …

zone.js:2969 OPTIONS https://dev-engine.mijnhep.nl/api/medical/organisation/1/Participant/filter-by-project?ProjectId=4f78e0c0-8cd3-4e37-bf62-105f622c483f net::ERR_INTERNET_DISCONNECTED

但是对话框:

    this.snackBar.open('Er ging iets mis bij het ophalen van de projecten, probeer het later nog een keer', 'Ok');

不会出现。

那么如何显示对话框呢?

谢谢

【问题讨论】:

【参考方案1】:

如果你想要消息,你可以尝试输入:alert("demo message");

error => 
          console.error('Server error when getting the projects', error);
          alert('Er ging iets mis bij het ophalen van de projecten, probeer het later nog een keer', 'Ok');
          this.dialog.close();
        

希望这能解决问题。

【讨论】:

谢谢。是的,好吧,那行得通。但我当然想将 MatSnackbar 与花哨的对话框一起使用。因为我也在其他组件中使用它。这行得通。 但是有人有什么建议吗?会很好

以上是关于如何使用 MatdialogRef 显示对话框?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Angular 材质对话框中获取数据?

NullInjectorError:没有MatDialogRef的提供者

如何显示视频捕捉滤镜对话框(相机设置,如亮度,曝光)?

如何为 gps 使用特定对话框?

如何处理显示在屏幕外的 QDialog?

Android IME:显示一个自定义弹出对话框(如 Swype 键盘),可以在 TextView 中输入文本