角度材质对话框返回值
问题描述:
我有一个下面的对话框组件(我打开使用另一个组件中的dialog.open(MyDialogComponent))。角度材质对话框返回值
export class MyDialogComponent implements OnInit {
constructor(public matDialogRef: MatDialogRef<MyDialogComponent>) {}
ngOnInit() {}
}
我知道可以通过执行绑定到对话单元的按钮matDialogRef.close(dataToReturn)任何数据返回给调用组件。但是,如果用户点击其他地方,但弹出窗口关闭它,我该如何返回数据?
答
如果有人有兴趣,我找到了解决方案(不知道它是否是最好的)。只需禁用默认的关闭操作,以便弹出窗口不会在背景点击时关闭,而在关闭背景时点击数据参数。
matDialogRef.disableClose = true;//disable default close operation
matDialogRef.backdropClick().subscribe(result => {
matDialogRef.close(dataToReturn);
});
这种方式调用组件接收数据,无论对话是由按钮关闭还是在别处单击。
您还应该订阅键盘事件来处理'esc'键。我浏览了源代码,并没有真正看到更好的方法来做到这一点。幸运的是,背景点击和'esc' keydown事件是唯一需要重新实现以实现相同功能的两件事情。 –