当前位置: 首页 > 知识库问答 >
问题:

从角度材料2中的MdDialog返回数据

万俟靖
2023-03-14

我使用MdDialogModule显示一个带有输入字段的对话框窗口。模态打开良好,我能够在输入字段中输入文本并提交,但单击提交按钮后,我希望输入表单中的数据返回到称为对话框组件的主组件,并关闭对话框。

我的对话框组件代码如下所示

import { Component, OnInit, InjectionToken, Inject } from '@angular/core';
import { MD_DIALOG_DATA, MdDialogRef } from "@angular/material";

@Component({
  selector: 'app-add-book',
  templateUrl: './add-book.component.html',
  styleUrls: ['./add-book.component.css']
})
export class AddBookComponent {

  constructor() { }

}

主组件中调用对话框的方法如下所示。现在没有返回任何响应,它返回未定义,因为我还没有弄清楚。

openCreateDialog() {
    let dialogRef = this.dialog.open(AddBookComponent)
      .afterClosed()
      .subscribe(response => {
        console.log(response);
      });
  }

共有3个答案

祝宏放
2023-03-14

“dialog.open”可用于打开对话框组件。

您可以通过添加第二个参数来指定要发送到对话框组件的数据。这可以包含诸如宽度和高度检查文档之类的信息,以获取更多信息。

要关闭,可以使用ref.close()。

如果您希望从对话框中获得数据,那么您可以使用ref . component instance . updatedselectedarms,这是一个在需要时触发的事件

var ref = this.dialog.open(SelectLoadingArmComponent, {
  width: '500px',
  data: { 
    loadingArms: this.loadingArms, 
    selectedloadingArms: this.selectedloadingArms
  }
});

ref.componentInstance.updatedSelectedArms.subscribe(
  (data) => {
    console.log(data)
    ref.close()
  }
);
张和豫
2023-03-14

首先感谢Harry的评论。。。

组件ts:

  let dialogRef = this.dialog.open(DataListDialogComponent, dialogConfig).afterClosed()
  .subscribe(response => {
    console.log(response);
  });

对话ts:

    this.dialogRef.close({data:'data'});
艾茂学
2023-03-14

首先,您需要将 MdDialogRef 添加到对话框组件中

export class AddBookComponent {
  constructor(private dialogRef: MdDialogRef<AddBookComponent>) { }
}

然后使用< code>dialogRef.close返回数据

save() {
  this.dialogRef.close({ data: 'data' });
}
 类似资料:
  • 我想在进行某些处理时显示一个进度条覆盖图。我可以计算完成百分比,所以我想使用一个确定的进度条。对于覆盖部分,我想使用一个对话框。基本上,我想做这里要做的事情(Angular 2 Material Progress微调器:显示为叠加),但我不需要微调器。因此,我的组件将如下所示: 模板: 元件: 然后我使用这个组件的代码如下: 我发现了这一点(如何将数据传递到angular material 2的对

  • 问题内容: 我想将一些数据传递给$ mdDialog。实际上,我在一个单独的文件中有两个控制器。这是我的控制器代码 我想tp将profileId传递给profileController并显示配置文件数据。在配置文件控制器中,我以此获取数据 但是这个错误出现在控制台中 这是什么错误以及如何解决? 问题答案: 我添加了配置文件模板,这是由于错误。通过删除它,我的问题解决了。

  • html SystemJS配置 家庭组件 问-我如何修复这个未知元素的问题?谢了!

  • > 到目前为止,我使用角2快速入门创建了一个新项目。 我决定开始使用angular 2 cli,并创建了一个新的angular 2 cli项目。 移动了我的所有文件并重新安装了所有软件包。 现在,当我试图在CLI项目中使用角2材料时,我遵循了这里的指南,但这是我得到的: 会出什么问题?

  • 当我在material design上用autocomplete实现时,我有一个关于angular 2的错误,我不知道为什么,因为这是我第一次用后端ASP.NET核心实现它。我尝试安装一些ng2库,但根本不起作用。下面是我的代码: 错误如下:

  • 我想在使用angle-cli的Angular 2应用程序中使用bootstrap材质设计。 引导材料设计(V4)使用SASS。为了使它在Angular 2中工作,我需要使用sass-loader。但是我没有找到任何解决方案来使Angulal-cli使用sass-loader,因为webpack配置不能被覆盖(据我所知)。 在使用Angular cli的Angular2应用程序中,是否有使用