MatDialogRef .afterClosed可观察

时间:2018-07-03 17:15:33

标签: angular angular-material angular5 angular-material-6

我正在使用MatDialogRef以便从组件中调用模态。 关闭ModalComponent时,我尝试取回数据,但是 似乎什么也没有传回

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

该模式的所有其他功能,包括将数据从baseComponent传递到ModalComponent似乎都正常。

2 个答案:

答案 0 :(得分:1)

首先,获取对话框参考:

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

然后,在同一代码块中设置一个订户:

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

另外,请记住,与您所做的不同,应该调用after ()之后的CloseClosed。

答案 1 :(得分:0)

古老的问题,但如果有人偶然发现:

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

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

然后在您的父组件中,通过以下方式订阅数据:

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

这将记录“我的字段”。

模态的返回值不是您传递的“数据”对象,而是您要返回的任何内容。