Angular Material 中的 MatDialog 对话框未关闭

2024-01-01

我正在开发 Angular 6 应用程序,其中使用 Angular 材质对话框。 数据成功发送到服务器后,我尝试关闭成功对话框。 我用了

this.dialogRef.close(0);

or

this.dialogRef.close(0); 

or

this.dialogRef.close(); 

但它仍然不起作用。

组件1.ts

let NewRegDialog = this.dialog.open(NewRegistrationComponent, {

  width: '750px',
  height: '500px',
  //disableClose: true,
  data: {
    email : email,
    regType : regType,
  },
});

NewRegDialog.afterClosed().subscribe(result => {

  if(result == 1){
    this.dialogRef.close('signup');
  }else{
    alert('Login failed') ;
    });

组件2.ts

    import { Component, OnInit , Inject } from '@angular/core';
    import {  MatDialog  , MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';

    
   ... .. 
   .. .. 
    
      constructor( private restapi: ServicesService , private dialog: MatDialog ,   public dialogRef: MatDialogRef<NewRegistrationComponent>,
        @Inject(MAT_DIALOG_DATA) public data: any ) {
    
   ...
   ..... 
   }
    
    
     user_signup(data) {
    
    
          let userData = {Email: this.email };
          this.restapi.signupUsingSocial(userData).then(
            result => {
              this.responseData = result;
    
              if (this.responseData.status == 1) {
                localStorage.setItem('token', this.responseData.data);
                this.dialogRef.close(1);
    
              } else {
                alert('give proper input');
              }
            },
            err => {
              this.dialogRef.close(0);
            }
          );}}
    

出现此错误是因为您在 NgZone 外部打开对话框。

一个简单的修复方法是在构造函数中导入 NgZone:

constructor(public dialogRef: MatDialogRef<ModalComponent>, private ngZone: NgZone) { }

然后运行NgZone中的代码

onNoClick(): void {
  this.ngZone.run(() => {
    this.dialogRef.close();
  });
}

本文解释了什么是 NgZone:https://blog.thoughtram.io/angular/2016/02/01/zones-in-angular-2.html https://blog.thoughtram.io/angular/2016/02/01/zones-in-angular-2.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Angular Material 中的 MatDialog 对话框未关闭 的相关文章

随机推荐

  • 这个简单的字符串转义可以防止任何 SQL 注入吗?

    我在一家公司工作 负责数据库模块的人员严格反对使用准备好的语句 我担心他的实施不安全 以下是我们当前用于进行 SQL 查询的代码 带有 JDBC MySQL 5 5 的 Java 8 应用程序 String value Raw user i
  • 密码策略的正则表达式[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我需要强制
  • 如何在 MySQL 中进行正则表达式替换?

    我有一个大约 500k 行的表 varchar 255 UTF8 列filename包含文件名 我试图从文件名中删除各种奇怪的字符 我想我会使用字符类 a zA Z0 9 Now MySQL中有没有一个函数可以让你通过正则表达式进行替换 我
  • 如何解决 SQL Server 中的“无效对象名称”?

    这是返回的错误消息 消息 208 第 16 级 状态 1 第 1 行 对象名称 ENG PREP 无效 在我尝试以下查询后会发生这种情况 insert into ENG PREP VALUES 572012 01 1 572012 01 2
  • ServerSocket 监听而不使用accept()

    我目前在学校参与一个项目 我们正在构建一个在 Android 手机上使用的通信系统 为此 我们将使用一个向所有客户端打开套接字的服务器 使它们进行通信 我以前做过几个聊天应用程序 没有任何套接字或线程处理问题 但这次 由于某种原因 它让我感
  • 如何在php中使用名称变量? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 你好 我正
  • ASP.NET 图表控件 - 如何创建此条形图?

    我想从数据表中制作一个图表控件 该表如下所示 替代文本 http www freeimagehosting net uploads 5d02ce1558 png http www freeimagehosting net uploads 5
  • “Any-∃”练习的有效类型签名是什么?

    Exercise Any Show that Any P xs is isomorphic to x xs P x 撇开以下事实不谈 x xs P x甚至不是有效语法 https stackoverflow com questions 56
  • 在 2020 年 Python 2 生命周期结束后,我还可以通过 Pip 安装依赖包吗?

    我正在使用 Python 2 7 和 python pip 从下载所有依赖包requirements txt用于运行我的项目的文件 据我们所知 Python 2 将于 2020 年结束生命 我担心无法从 pip 安装我的依赖包 因为pip
  • 将上下文传递给接口方法

    有点受到启发本文 https medium com benbjohnson structuring applications in go 3b04be4ff091上周 我正在尝试重构一个应用程序 我必须更明确地将上下文 数据库池 会话存储等
  • 如何在 C# 中使用 6.0 或更高版本获取 Android 设备的 Mac 地址?

    我发现了一些使用 Java 的示例 但是我在构建 C 方法时遇到了麻烦 任何人都可以发布一个简单的 C 示例来获取我的设备的 Mac 地址 FOR Marshmallow 6 0 我知道还有其他方法可以获取唯一 ID 但我现在对导入组件并不
  • 打印不带省略号的 numpy 数组

    我想打印一个不被截断的 numpy 数组 我见过其他解决方案 但这些似乎不起作用 这是代码片段 total list np array total list np set printoptions threshold np inf prin
  • 与 MS Access 建立连接

    Microsoft ACE OLEDB 12 0 提供程序未在本地计算机上注册 and Microsoft JET OLEDB 4 0 提供程序未在本地计算机上注册 对我来说都是错误 我在尝试创建 Access 连接时一直在尝试这两种方法
  • 如何在 CoordinatorLayout 中禁用 AppBarLayout 的滚动?

    I have MapFragment内部有视差效果AppBarLayout 我想禁用滚动AppBarLayout 因为不可能在地图上移动 因为地图上的触摸事件始终被处理为滚动事件 我想处理崩溃AppBarLayout通过滚动Recycler
  • 如何使用 Three.js 在运行时绘制线段

    我是 Three js 的新手 我正在尝试实现 Microsoft Paint 中用于绘制线段的技术 我试图获取 onMouseDown 点的坐标 然后用 onMouseMove 延伸一条线直到 onMouseDown 请帮忙 Three
  • SQL 按年龄范围分组

    SQL 2005 我有一个包含 ages c 列的表 我需要按年龄范围对记录进行分组 这是我在这个网站上找到的查询 它让我达到了 90 但 分组依据 出错 无效的列名 age range select case when age c lt
  • 如何根据 ng-style 指令中的多个条件应用多种样式?

    在角度中 我需要根据不同的条件应用不同的样式属性 但它不能以这种方式工作 我只能使用条件表达式应用 2 个条件 div 如果您知道有什么方法可以将属性 div
  • 访问 Websphere 6.1 变量

    我想从 java 类获取 Websphere 变量 APP INSTALL ROOT 的值 如何才能做到这一点 试试这个网站 http www slightlytallerthanaverageman com 2007 04 02 acce
  • 应用程序未在最新版本的react-native iOS 上运行

    新项目无法在 iOS 上构建 使用react native init创建新项目 项目名称 然后使用react native run ios运行 并在终端上遇到以下问题 构建失败 以下命令产生了分析器问题 分析 Volumes mac dat
  • Angular Material 中的 MatDialog 对话框未关闭

    我正在开发 Angular 6 应用程序 其中使用 Angular 材质对话框 数据成功发送到服务器后 我尝试关闭成功对话框 我用了 this dialogRef close 0 or this dialogRef close 0 or t