回答

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輸入,以防止用戶關閉該對話框。