Eckig Material: Wie schließen Sie alle mat-Dialoge und süß-Warnungen auf logout
Wollte ich Nähe alle meine Dialogfeld (mat-Dialogfeld bootstrap-modals & sweet-alerts) auf logout im Winkel. Dies ist, wie es gemacht wurde in AngularJS (version 1.5):
function logout() {
//hide $mdDialog modal
angular.element('.md-dialog-container').hide();
//hide any open $mdDialog modals & backdrop
angular.element('.modal-dialog').hide();
angular.element('md-backdrop').remove();
//hide any open bootstrap modals & backdrop
angular.element('.inmodal').hide();
angular.element('.fade').remove();
//hide any sweet alert modals & backdrop
angular.element('.sweet-alert').hide();
angular.element('.sweet-overlay').remove();
}
Wie kann ich dies in Eckige? Mit $('.mat-dialog-container')
oder $('.inmodal')
tut nicht geben mir eine option zu tun hide()
oder close()
Ich habe versucht zu tun, aber ich wan ' T in der Lage, um die element-Referenz:
import { ElementRef, Injectable, ViewChild } from '@angular/core';
import { MatDialog, MatDialogContainer, MatDialogRef } from '@angular/material';
export class MyClass
{
@ViewChild('.mat-dialog-container') _matDialog: ElementRef;
@ViewChild('.mat-dialog-container') _matDialogRef:MatDialogRef<MatDialog>;
constructor() { }
function logout()
{
//access the dialogs here
}
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist, was ich getan haben, schließen Sie alle geöffneten
mat-dialog
in der gesamten Anwendung:Wenn Sie möchten, schließen Sie nur einen bestimmten dialog können Sie eine Schleife durch
dialogRef.openDialogs
und schließen Sie den jeweiligen dialog mitclose()
Dies ist, wie können Sie schließen Sie alle offenen/aktiven sweet-alert-dialog:
Im Gegensatz zu
material-dialog
es gibt keine Methode, zu schließen oder verstecken Sie alle geöffneten sweet-alert-Dialogfeld. Dies ist, was ich in der Lage bin zu tun, so weit.