回答

11

有两种方法可以做到这一点。

  1. 在打开对话的功能,通过在下面的配置选项disableCloseMatDialog.open()第二个参数,并将其设置为true

    export class AppComponent { 
        constructor(private dialog: MatDialog){} 
        openDialog() { 
         this.dialog.open(DialogComponent, {disableClose: true}); 
        } 
    } 
    
  2. 可替换地,这样做在对话框部件本身。

    export class DialogComponent { 
        constructor(private dialogRef: MatDialogRef<DialogComponent>){ 
         dialogRef.disableClose = true; 
        } 
    } 
    

这里就是你要找的内容:

<code>disableClose</code> property in material.angular.io

+3

我觉得这恼人的是,你必须同时禁用“因逃逸点击之外”。为了解决这个问题:'@HostListener('window:keyup.esc') onKeyUp(){ this.dialogRef.close(); }' –

1

RTFM

根据文档here可以使用disableClose输入,以防止用户关闭该对话框。