2017-06-24 68 views
7

我用angular2素材MdDialog來顯示錶單。Angular2 material dialog self close

當用戶提交表單時,會向後端發送請求,如果請求成功,我需要關閉對話框。如果後端請求失敗,我需要保持對話框打開。

我可以使用下面的按鈕關閉對話框。

<button md-raised-button md-dialog-close>Cancel</button> 

但是,在這種情況下,我只需要關閉只有當後端請求成功的對話,所以我需要一種以編程方式關閉該對話框。

對話框中顯示的組件沒有對話框ref,我不知道任何其他方式從組件中自行關閉對話框。

有沒有什麼辦法可以從對話框內的組件內關閉對話框?

回答

15

如果你想從該對話框關閉:

constructor(private dialogRef:MatDialogRef<MyDialogComponent>){ } 

closeDialog(){ 
    this.dialogRef.close(); 
} 

如果你想接近它從該對話框的父:

constructor(private matDialog: MatDialog){} 

//anywhere 
let dialogRef = this.matDialog.open(MyDialogComponent); 
dialogRef.close(); 
相關問題