Open In App
Related Articles

How to open popup using Angular and Bootstrap ?

Improve Article
Improve
Save Article
Save
Like Article
Like

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';
    
  • In html file:
    <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:


Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape, GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out - check it out now!

Last Updated : 31 May, 2020
Like Article
Save Article
Previous
Next
Similar Reads
Complete Tutorials