I am trying to close the modal that was presented to me through the open(content) function as shown in the example in the Documentation of ng-boostrap. In the website, it me
Answer can be found here. ng-bootstrap website is missing lots of information unfortunately Cannot close ng-bootstrap Modal
Inside the component class
private modalRef: NgbModalRef;
// Modal
open(content) {
this.modalRef = this.modalService.open(content);
this.modalRef.result.then((result) => {
this.closeResult = `Closed with: ${result}`;
}, (reason) => {
this.closeResult = `Dismissed ${this.getDismissReason(reason)}`;
});
}
onSave() {
this.modalRef.close();
}
I followed the doc from ng-bootstrap with Angular 6. Finally I found the solution changing one line from the original example:
modal-options.html
<ng-template #content let-d="dismiss">
<div class="modal-header">
<h4 class="modal-title">Modal title</h4>
<button type="button" class="close" aria-label="Close" (click)="d('Cross click')">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<p>One fine body…</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-light" (click)="d('Close click')">Close</button>
</div>
</ng-template>
I changed from this let-modal to this let-d="dismiss" and also this 2 lines:
modal-options.ts
constructor(private modalService: NgbModal) {}
openLg(content) {
this.modalService.open(content, { size: 'lg' });
}
At your modal component you need to add the line :
@ViewChild('exampleModal') public exampleModal:ModalDirective;
At html modal you need to insert in the div root :
#exampleModal="bs-modal"
At your modal component :
onSave(){
this.exampleModal.hide();
}