Как закрыть все диалоговые окна, открытые с помощью angular-materiel одновременно
Я использую угловой компонент материала в своем угловом приложении, чтобы открывать диалоговое окно всякий раз, когда возникает ошибка с сервера.
Если одновременно возникает многократная ошибка, это открывает несколько диалоговых окон, что хорошо для меня. Я хочу закрыть все диалоговые окна одновременно, используя closeAll
метод.
Когда попробуйте использовать closeAll
метод получения этой ошибки:
error TS2339: Property 'closeAll' does not exist on type 'MatDialogRef<DialogComponent, any>'.
Как я открываю диалог:
constructor(private dialog: MatDialog) {}
const dialogRef = this.dialog.open(DialogComponent, {
width: "500px",
height: "500px",
disableClose: true,
hasBackdrop: true,
data: { name: this.name, animal: this.animal }
});
DialogComponent.ts
onClose(): void {
this.dialogRef.closeAll();
}
@NgModule({
declarations: [
DialogComponent,
...
],
imports: [
MatDialogModule,
BrowserAnimationsModule,
...
],
providers: [
...
],
entryComponents: [ DialogComponent],
bootstrap: [AppComponent]
})
export class AppModule {}
Кто-нибудь может мне помочь, пожалуйста!
1 ответ
Вставить MatDialog в DialogComponent.ts
import { MAT_DIALOG_DATA, MatDialogRef, MatDialog } from '@angular/material';
export class DialogComponent {
constructor(private _dialog: MatDialog) { }
public onClose(): void {
this._dialog.closeAll();
}
}
Впрыскивать MatDialog
к DialogComponent.ts
constructor(private dialog: MatDialog) { }
onClose(): void {
this.dialog.closeAll();
}