[英]How to close dropdown checklist when clicked outside of it but prevent it from closing when textarea is selected?
[英]Prevent MatDialog From Closing When Clicked Outside with pending changes
当有未决的更改时,我想防止关闭外部。 我是这样的,但没有结果。
this.dialogRef.beforeClosed().subscribe(() => {
this.dialogRef.close(false);
//some code logic
//...
});
MatDialog 上的disableClose
必须保持为false
最初,在打开对话框时,您可以将“disableClose”作为 true 传递,然后在没有待处理的更改时手动关闭背景单击或退出单击时的对话框。
this.dialog.open(DialogComponent, { disableClose: true });
dialogRef.backdropClick().subscribe( () => {
if(!pendingChanges) dialogRef.close();
// else do nothing
});
根据具体情况,您最初可以将disableClose
设置为false
,以便用户可以在没有挂起的更改时关闭它,具体取决于挂起的更改是什么,例如,如果是异步调用,您可以将disableClose
设置为true
.
然后,您还可以将MatDialogRef
注入组件本身并根据您的要求手动切换disableClose
,如下所示:
constructor(private matDialogRef: MatDialogRef<WhateverYourDialogIsCalled>) {}
然后在异步调用中它可能是:
onSubmit() {
this.matDialogRef.disableClose = true;
this.myService.doSomething().subscribe(_ => {
this.matDialogRef.disableClose = false;
});
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.