How to open popup using Angular and Bootstrap ?

31 May, 2020
Adding Bootstrap to your Angular application is an easy process. Just write the following command in your Angular CLI. It will add bootstrap into your node_modules folder.
ng add @ng-bootstrap/ng-bootstrap

Approach: Import NgbModal module in the TypeScript file of the corresponding component, and then we have to write code for the popup model by using the above module in the HTML file of the corresponding component.
Syntax:
In typescript file:import {NgbModal} from '@ng-bootstrap/ng-bootstrap';

import {NgbModal} from '@ng-bootstrap/ng-bootstrap';

In html file:<ng-template #content let-modal>
  ...
</ng-template>

<ng-template #content let-modal>
  ...
</ng-template>

Example: modal-basic.ts
import {Component} from '@angular/core';  import {NgbModal, ModalDismissReasons}       from '@ng-bootstrap/ng-bootstrap';  @Component({  selector: 'ngbd-modal-basic',  templateUrl: './modal-basic.html'})export class NgbdModalBasic {  closeResult = '';    constructor(private modalService: NgbModal) {}    open(content) {    this.modalService.open(content,   {ariaLabelledBy: 'modal-basic-title'}).result.then((result)       => {      this.closeResult = `Closed with: ${result}`;    }, (reason) => {      this.closeResult =          `Dismissed ${this.getDismissReason(reason)}`;    });  }    private getDismissReason(reason: any): string {    if (reason === ModalDismissReasons.ESC) {      return 'by pressing ESC';    } else if (reason === ModalDismissReasons.BACKDROP_CLICK) {      return 'by clicking on a backdrop';    } else {      return `with: ${reason}`;    }  }}
Now, we have to use ng-template to construct the model which will create a popup.
Example: modal-basic.html
<ng-template #content let-modal>    <div class="modal-header">        <h4 class="modal-title"             id="modal-basic-title">            Geeks of Geeks        </h4>        <button type="button" class="close"                aria-label="Close" (click)=                "modal.dismiss('Cross click')">              <span aria-hidden="true">                ×            </span>        </button>    </div>    <div class="modal-body">        <form>            <div class="form-group">                <label for="dateOfBirth">                    Date of birth                </label>                <div class="input-group">                    <input id="dateOfBirth"                         class="form-control"                         placeholder="yyyy-mm-dd"                         name="dp" ngbDatepicker                        #dp="ngbDatepicker">                      <div class="input-group-append">                        <button class="btn                             btn-outline-secondary calendar"                            (click)="dp.toggle()"                            type="button">                        </button>                    </div>                </div>            </div>        </form>    </div>    <div class="modal-footer">        <button type="button"             class="btn btn-outline-dark"             (click)="modal.close('Save click')">            Save        </button>    </div></ng-template>  <button class="btn btn-lg btn-outline-primary"     (click)="open(content)">    Popup using Angular and Bootstrap</button>
Output:
AngularJS-Misc
Bootstrap-Misc
Picked
AngularJS
Web Technologies
Web technologies Questions
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Angular File Upload
Angular | keyup event
Auth Guards in Angular 9/10/11
Routing in Angular 9/10
What is AOT and JIT Compiler in Angular ?
Top 10 Projects For Beginners To Practice HTML and CSS Skills
Installation of Node.js on Linux
Difference between var, let and const keywords in JavaScript
How to insert spaces/tabs in text using HTML/CSS?
How to fetch data from an API in ReactJS ?