1

Angular Materialを使用してダイアログを作成していますが、クライアントがダイアログをクリックすると自動的に閉じます。私たちのコード側が "close"関数を呼び出すまで、ダイアログを閉じるのを避ける方法はありますか?または、どのようにクローズド・モーダルを作成する必要がありますか?Angular 4プロジェクトのパスワードリセットページで現在作業中です。Angle 4プロジェクトのパスワードリセットページで作業しています。(Angular Version 4.0以上の場合)

おかげ

答えて

11

これには2通りの方法があります。 、ダイアログを開きMatDialog.open()に2番目のパラメータとして、以下の構成オプションdisableClose渡しとtrueに設定する機能で

  1. 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

ダイアログを閉じてからユーザーを防ぐためにdisableClose入力を使用することができますドキュメントhereによります。

関連する問題