공식 https://material.angular.io/components/dialog/overview을 따랐을 때 대화 상자 구성 요소 자체를 닫아야하는 경우 아래와 같이 MdDialogRef 참조를 삽입 한 다음 이벤트를 닫아야한다고 나와 있습니다MdDialogRef.close가 콜백에서 호출 할 때 대화 상자를 닫지 않습니다. 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();
});
}
}
Google OAuth의 응답이 성공적이면 closeDialog()가 호출됩니다. 그러나 대화 상자는 닫히지 않습니다. [setTimeOut/UserAction의 일부로 대화 상자를 닫는 데 문제가 없습니다]
광산은 다른 것으로, '콜백 이벤트에서'대화 상자를 닫으려고합니다. 앞서 언급했듯이 사용자 입력 작업을 열거 나 닫는 데 문제가 없습니다. – nsk