Для Boostrap Modal , вы должны сначала получить ссылку на модальное значение viewchild
.
@ViewChild('closeModal') closeModal: ElementRef
@Component({
...
})
export class myComponent extends myModal {
@ViewChild('closeModal') closeModal: ElementRef
...
}
Когда вам нужно закрыть модальное, просто позвоните: this.closeModal.nativeElement.click()
Например:
public googleLogin(content): void {
this.auth.authenticateUser().then((res: any) => {
setTimeOut(()=>{
// close the modal in this moment.
this.closeModal.nativeElement.click() //<-- here
const user = res.user;
this.router.navigate(['/gallery']);
},8000);
});
}
В вашем html добавьте #closeModal
к кнопке:
<button #closeModal type="button" class="close" aria-label="Close" (click)="d('Cross click')">
<span aria-hidden="true">×</span>
</button>
Узнайте больше о bootstrap modal здесь .
Material Design : вам придется использовать сервис диалога материалов, который вы добавили в свой компонент.
constructor(
public dialogRef: MatDialogRef<Dialog>,
@Inject(MAT_DIALOG_DATA) public data: DialogData
) {}
closeModalDialog(): void {
this.dialogRef.close();
}
onDialogOpen(): void {
let dialogRef = this.dialog.open(Dialog);
setTimeout(() => {
dialogRef.close();
}, 80000) ==========> set time here
}
Узнать подробнее о материале angular модал здесь .