2017-12-12 3 views
1

角度5と角度のある素材(最新バージョン)を使用していますが、ページからダイアログを開こうとしています。オープニングをトリガーするボタンをクリックすると、ウェブサイト全体が空白の背景に置かれます。たとえば、ダイアログにコンテンツが重なっていて、すべて隠しているようなものです。角度材料ダイアログコンポーネントは、すべてのウェブサイトコンポーネントを非表示にします。

import { Component, OnInit, Inject } from '@angular/core'; 
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; 

@Component({ 
    moduleId: module.id, 
    selector: 'app-dialog', 
    templateUrl: 'dialog.component.html', 
    styleUrls: ['dialog.component.scss'] 
}) 
export class DialogComponent implements OnInit { 

    constructor(public dialogRef: MatDialogRef<DialogComponent>, 
     @Inject(MAT_DIALOG_DATA) public data: any) { } 

    onNoClick(): void { 
     this.dialogRef.close(); 
    } 

    ngOnInit() { 
    } 

} 

これは、ダイアログを開く方法です。

onSubmit() { 

     const dialogRef = this.dialog.open(DialogComponent, { 
      width: '250px', 
      data: { name: 'Juan Manuel', animal: 'Perro' } 
     }); 

     dialogRef.afterClosed().subscribe(result => { 
      console.log('The dialog was closed'); 
      console.log(result); 
     }); 
    } 

UPDATE: 私は、ダイアログがレンダリングされた後、クラスは私のhtmlタグに追加されていることを見てきました。 .cdk-global-scrollblockなぜ私のHTMLタグにそのクラスが追加されたのか分かりません。

.cdk-global-scrollblock { 
    position: fixed; 
    width: 100%; 
    overflow-y: scroll; 
} 

これは私のエラーの原因です。誰かがなぜそのクラスが自分のhtmlタグにあるのか知っていますか?

+1

をコンソールをチェックし、それはいくつかの例外を発射することができ、それはすることができますコンポーネントの初期化の問題。 – Dimuthu

+0

nop、コンソールにエラーはありません。ダイアログは正常に開きますが、私のウェブサイトはすべて灰色で白抜きで表示されます。 – Juanma

+2

上記のクラスが追加されています。プランナーを使って再現できますか? – Aravind

答えて

1

MatDialogConfigAPI Docsを参照してください。 hasBackdropfalseに設定することができます。

const dialogRef = this.dialog.open(DialogComponent, { 
     width: '250px', 
     data: { name: 'Juan Manuel', animal: 'Perro' }, 
     hasBackdrop: false 
    }); 
0

これは絶対的な位置を持っているあなたのコンポーネントに影響を与えますHTML bodyに注入されたcdk-global-scrollblockによるものです。

.cdk-global-scrollblock { 
    position: static; 
    overflow: hidden !important; 
} 

または廃止予定のシャドウ・ピアスと::

あなたがして角度素材のテーマCSSでそれを上書きすることができ

/deep/ .cdk-global-scrollblock { 
    position: static; 
    overflow: hidden !important; 
} 
関連する問題