Я изучаю Угловой и сделал модальное в своем проекте. Если я нажму на класс с функцией openDialog()
, он откроет модальное окно.
Я хочу иметь возможность закрывать это модальное окно, когда я нажимаю Икс.
<a class = "portfolio__item" target = "_blank" (click) = "openDialog()">
<img src = "assets/img/mywork-img/portfolio-05.jpg" alt = "" class = "portfolio__img">
</a>
<dialog id = "my-dialog-pubcrawl" class = "my-dialog">
<div class = "np-row">
<div class = "np-title">This is a dialog window</div>
<div class = "np-close-btn" title = "Close">X</div>
</div>
</dialog>
.ts-файл: Открывает модальное
openDialog() {
let myDialogPubcrawl:any = <any>document.getElementById("my-dialog-pubcrawl");
myDialogPubcrawl.showModal();
}
Модальный:
Как я могу закрыть модальное окно, нажав X в Angular?
myDialogPubcrawl — это переменная TS для HTML-идентификатора my-dialog-pubcrawl. ShowModal(9) отображает диалог в модальном режиме. Подробнее здесь: developer.mozilla.org/en-US/docs/Web/API/HTMLDialogElement/…
Один из способов добиться этого — сохранить экземпляр диалога и вызвать метод close:
<a class = "portfolio__item" target = "_blank" (click) = "openDialog()">
<img src = "assets/img/mywork-img/portfolio-05.jpg" alt = "" class = "portfolio__img">
</a>
<dialog id = "my-dialog-pubcrawl" class = "my-dialog">
<div class = "np-row">
<div class = "np-title">This is a dialog window</div>
<div class = "np-close-btn" title = "Close" (click) = "closeDialog()">X</div>
</div>
</dialog>
myDialogPubcrawl:any;
openDialog() {
this.myDialogPubcrawl = <any>document.getElementById("my-dialog-pubcrawl");
this.myDialogPubcrawl.showModal();
}
closeDialog() {
this.myDialogPubcrawl.close();
}
Чтобы действительно помочь вам исправить этот код. Нам нужно понять, что такое myDialogPubcrawl или как работает этот .showModal(). Но я могу сказать, что «щелкнуть снаружи» модальное окно и закрыть его. Самый простой способ — создать фоновый div. Позиционируется за модальным окном, с помощью щелчка мыши по кнопке «Отклонить()». То же самое уволить (), чтобы положить на кнопку X.