3

我正在使用MatDialogRef为了从组件调用模态。关闭时ModalComponent,我尝试取回数据, 似乎没有传回

dialogRef = dialog.open(ModalComponent,ConfigObj).afterClosed
  .subscribe(data => console.log(data));

模态的所有其他功能,包括将数据从 传递baseComponentModalComponent似乎工作正常。

4

2 回答 2

4

老问题,但万一其他人偶然发现:

当您调用 dialogRef.close() 时,DialogRef 将返回您传入的数据。在对话框组件中完成后,调用:

const myDataObject = {
field1: 'My field'
}
dialogRef.close(myDataObject);

然后在您的父组件中,使用以下命令订阅数据:

dialogRef.afterClosed()
.subscribe( data => console.log(myDataObject.field1));

这将记录“我的领域”。

modal 的返回值不是您传入的“数据”对象,它只是您想要返回的任何内容。

于 2019-02-25T20:12:08.273 回答
3

首先,获取对话框引用:

let dialogRef = dialog.open(ModalComponent,ConfigObj);

然后,在同一代码块中设置订阅者:

dialogRef.afterClosed()
    .subscribe( data=>console.log(data));

另外,请记住 afterClosed 应该被调用(),这与您所做的不同。

于 2018-07-03T18:23:30.287 回答