J'ai suivi le https://material.angular.io/components/dialog/overview officiel où il est dit que si le composant de dialogue lui-même doit être fermé, nous devons injecter la référence MdDialogRef comme ci-dessous et ensuite fermer un événementMdDialogRef.close ne ferme pas la boîte de dialogue lors d'un rappel fn
export class LoginDialogComponent {
constructor(public dialogRef: MdDialogRef<LoginDialogComponent>,
@Inject(MD_DIALOG_DATA) public data: any, public afAuth: AngularFireAuth, private router: Router) {
}
closeDialog(): void {
this.dialogRef.close();
}
signInWithGoogle() {
const self = this;
this.afAuth.auth
.signInWithPopup(new firebase.auth.GoogleAuthProvider())
.then(res => {
self.closeDialog();
});
}
}
En cas de succès de Google OAuth, je vois que closeDialog() est appelée. Cependant, la boîte de dialogue n'est pas fermée. [Je n'ai aucun problème à fermer le dialogue dans le cadre de setTimeOut/UserAction]
Mine est un autre, j'essaie de fermer la boîte de dialogue «sur un événement de rappel». Comme mentionné, je n'ai pas de problèmes d'ouverture/fermeture sur l'action d'entrée de l'utilisateur. – nsk