Angular 10/9 Popup Modal Example with Angular Material Form and Modal Dialog Components

Angular 10/9 Popup Modal Example with Angular Material Form and Modal Dialog Components

In this post we will give you information about Angular 10/9 Popup Modal Example with Angular Material Form and Modal Dialog Components. Hear we will give you detail about Angular 10/9 Popup Modal Example with Angular Material Form and Modal Dialog ComponentsAnd how to use it also give you demo for it if it is necessary.

In this tutorial, you’ll learn about Angular Popup Modals and forms by example. We’ll be using Angular Material with an Angular 10 example.

These are the steps:

  • Step 1: Creating an Angular 10 Project
  • Step 2: Adding Angular Material v10
  • Creating the Angular Modal Component
  • Adding a Material Card Container
  • Adding an HTML Form
  • Step 3: Using a Modal Dialog for Displaying Error Messages
  • Step 4: Opening the Popup Modal Dialog

In this tutorial, you’ll build an example login UI with a form and dialog styled with Angular Material.

Step 1: Creating an Angular 10 Project

We assume you have created an Angular 10 project using Angular CLI. Otherwise, you can install Angular CLI from npm using:

$ npm install @angular/cli -g

Next, you can generate your project using:

$ ng new mat-modal-example

You’ll be prompted if would you like to add routing to your project and which stylesheets format you want to use. Choose the desired options for your project and let’s continue.

You can serve your project using the following commands:

$ cd mat-modal-example$ ng serve

Your application will be available from the http://localhost:4200/ address.

Step 2: Adding Angular Material v10

Open a new terminal and navigate to your project’s folder, next run the ng add command to install and set up Angular Material in your project:

$ cd mat-modal-example$ ng add @angular/material

You also need to configure or disable animations.

Next, you need to add the modules for the Material components you’ll be using in your project.

Open the src/app/app.module.ts file and add these imports:

import{MatInputModule}from'@angular/material/input';import{MatButtonModule}from'@angular/material/button';import{MatCardModule}from'@angular/material/card';import{MatFormFieldModule}from'@angular/material/form-field';import{MatDialogModule}from'@angular/material/dialog';

Next, you need to add these modules in the imports array of your main module:

imports:[/*...*/,MatDialogModule,MatInputModule,MatButtonModule,MatCardModule,MatFormFieldModule],

Creating the Angular Modal Component

Next, you need to create the login component and style it with Material Design. In your terminal, run the following command:

$ ng generate component login

Adding a Material Card Container

Now, open src/app/login/login.component.html file and add a Material card container as follows:

<mat-card><mat-card-header><mat-card-title>Example Login Form</mat-card-title></mat-card-header><mat-card-content><!-- This is where you need to add your login form --></mat-card-content>

A <mat-card> component can be used as a container for text, forms and photos. You can check out the docs for more information.

Adding an HTML Form

In the body of the card container, add a form:

<form><!-- Form fields --></form>

Next, we need to provide input fields for getting the email and password from the user:

<mat-form-field><inputmatInputplaceholder="your email"[(ngModel)]="email"type="email"name="email"required></mat-form-field><mat-form-field><inputmatInputplaceholder="your password"[(ngModel)]="password"type="password"name="password"required></mat-form-field>

First, we use <mat-form-field> to wrap each field of the form, next use matInput directive with regular <input> tags to create input fields with Material look and feel.

The <mat-form-field> component provides wrapped fields with features such as the underline, floating label, and hint messages.

You can wrap the following elements in <mat-form-field>:

Next, we finish building the login UI by adding a button:

<mat-card-actions><buttonmat-raised-button(click)="login()"color="primary">Login</button></mat-card-actions></mat-card>

You can create Material buttons using the regular HTML tags such as <button> and <a> tags and applying mat-button ormat-raised-button directives. For more more information check out the docs.

Step 3: Using a Popup Modal Dialog for Displaying Error Messages

Angular Material provides the MatDialog service for displaying modal dialogs. You can create a dialog using an Angular component so first create the component using:

$ ng generate component message

Next, open the src/app/message/message.component.ts file and update it accordingly:

import{Component,Inject,Injectable}from'@angular/core';import{MatDialogRef,MAT_DIALOG_DATA,MatDialog}from'@angular/material/dialog';@Component({templateUrl:'message.component.html'})exportclassMessageComponent{constructor(privatedialogRef:MatDialogRef<MessageComponent>,@Inject(MAT_DIALOG_DATA)publicdata:any){}publiccloseMe(){this.dialogRef.close();}}

When this component is created with the MatDialog service, a MatDialogRef<MessageComponent> will be injected which references the opened modal dialog so you can use it to close the dialog.

We also need to pass data between the dialog and the component. You can simply use the MAT_DIALOG_DATA injection token and the @Inject() decorator to get dialog data in your component.

Next open the src/app/message.component.html and update it accordingly:

<h1mat-dialog-title>Message</h1><mat-dialog-content></mat-dialog-content><mat-dialog-actions><buttonmat-raised-button(click)="closeMe()">Close</button></mat-dialog-actions>

We use the mat-dialog-title combined with the <h1> tag to add the dialog title, the<mat-dialog-content> directive for adding the content area of the dialog and the <mat-dialog-actions> for adding the dialog action buttons.

Step 4: Opening the Popup Modal Dialog

For testing the modal dialog, we’ll add the login() method to our login component which will open the message dialog to display an error. Open the src/login/login.component.ts file and update it accordingly:

import{Component,OnInit}from'@angular/core';import{MatDialog,MatDialogRef}from'@angular/material';// .. other imports@Component({// component metadata})exportclassLoginComponent{publicemail:string="";publicpassword:string="";constructor(privatedialog:MatDialog,privaterouter:Router){}login(){if(this.email==="email@email.com"&&this.password==="p@ssw0rd"){this.router.navigate(['success']);}else{this.dialog.open(MessageComponent,{data:{message:"Error!!!"}});}}}

You use the TypeScript import keyword to import the MatDialog service and inject it via your component’s constructor and then you call the open() method of the injected instance to open the message modal. The method takes a config object with a data attribute that contains data that you need to pass to the dialog’s component.

Conclusion

In this tutorial, you have created a simple login UI example with Angular 10, an HTML form, a Modal popup dialog and Angular Material 10.


Hope this code and post will helped you for implement Angular 10/9 Popup Modal Example with Angular Material Form and Modal Dialog Components. if you need any help or any feedback give it in comment section or you have good idea about this post you can give it comment section. Your comment will help us for help you more and improve us. we will give you this type of more interesting post in featured also so, For more interesting post and code Keep reading our blogs

For More Info See :: laravel And github

We're accepting well-written guest posts and this is a great opportunity to collaborate : Contact US