You can also follow the video tutorial on YouTube.
In this Angular tutorial, you’ll learn how to show Popup in Angular application using Angular Material modal component MatDialog.
Setting up the Angular application
For the sake of this tutorial, I have created an Angular application using Angular CLI. Once the boilerplate code has been created, you need to install Bootstrap and Angular Material in your application.
Adding Material Modal Popup
Open the app.module.ts
file and import the MatDialogModule
and include it to the imports array.
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { MatDialogModule } from '@angular/material/dialog';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
AppRoutingModule,
BrowserAnimationsModule,
MatDialogModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
For showing some content inside the modal pop up, let’s create a new component.
ng g component pop-up
Add the following HTML code to pop-up.component.html
file.
<h2> Welcome </h2>
<button class="btn btn-primary">
Press
</button>
Inside app.component.ts
file, import MatDialog
and create an instance of it.
import { MatDialog } from '@angular/material/dialog';
constructor(private dialogRef : MatDialog){}
Create a method called openDialog
which uses the MatDialog
instance to open the PopUpComponent
component in modal popup.
openDialog(){
this.dialogRef.open(PopUpComponent);
}
Add the following HTML code to app.component.html
file to add a button which triggers modal popup on click.
<button class="btn btn-primary" (click)="openDialog()">
Click to open pop up
</button>
Save the above changes and start the Angular application. On clicking the button, you’ll be able to see the PopUpComponent
inside the modal popup.
Passing Data To Modal Popup
You can also pass data to modal popup from the parent component. Let’s pass some data to the modal pop up. Modify the openDialog
method in app.component.ts
file to pass data to the modal popup.
openDialog(){
this.dialogRef.open(PopUpComponent,{
data : {
name : 'Samuel'
}
});
}
Inside the modal popup component pop-up.component.ts
file, inject MAT_DIALOG_DATA
and parse the data passed to the modal popup.
import { Component, Inject, OnInit } from '@angular/core';
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
@Component({
selector: 'app-pop-up',
templateUrl: './pop-up.component.html',
styleUrls: ['./pop-up.component.css']
})
export class PopUpComponent implements OnInit {
firstName;
constructor(@Inject(MAT_DIALOG_DATA) public data) {
this.firstName = data.name
}
ngOnInit(): void {
}
}
Modify the pop-up.component.html
file code to display the passed firstName
.
<h2> Welcome {{firstName}} </h2>
<button class="btn btn-primary">
Press
</button>
Save the above changes and click on the button. You will be able to see the modal popup with the passed in name.
Wrapping it up
In this Angular tutorial, you learnt how to show pop up in Angular application using Angular material modal component MatDialog. You also learnt how to pass data from parent component to the modal popup component.
Source code from this tutorial is available on GitHub.