【问题标题】:How to show the dialog with MatdialogRef?如何使用 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');

不会出现。

那么如何显示对话框呢?

谢谢

【问题讨论】:

    标签: javascript angular angular-material snackbar


    【解决方案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 与花哨的对话框一起使用。因为我也在其他组件中使用它。这行得通。
    • 但是有人有什么建议吗?会很好
    猜你喜欢
    • 1970-01-01
    • 2023-03-05
    • 2016-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-03
    相关资源
    最近更新 更多