In this article, we will create custom directive which only allow two decimal places in the input field.
Step 1:-
Create an Angular application using this command
ng new demo cd demo
Step 2:-
Create directives using this command
ng generate directive two-decimal-number
Add the following code in your only-numbers directives
import { Directive, ElementRef, HostListener } from '@angular/core'; @Directive({ selector: '[appTwoDigitDecimaNumber]' }) export class TwoDigitDecimaNumberDirective { private regex: RegExp = new RegExp(/^\d*\.?\d{0,2}$/g); private specialKeys: Array<string> = ['Backspace', 'Tab', 'End', 'Home', '-', 'ArrowLeft', 'ArrowRight', 'Del', 'Delete']; constructor(private el: ElementRef) { } @HostListener('keydown', ['$event']) onKeyDown(event: KeyboardEvent) { console.log(this.el.nativeElement.value); if (this.specialKeys.indexOf(event.key) !== -1) { return; } let current: string = this.el.nativeElement.value; const position = this.el.nativeElement.selectionStart; const next: string = [current.slice(0, position), event.key == 'Decimal' ? '.' : event.key, current.slice(position)].join(''); if (next && !String(next).match(this.regex)) { event.preventDefault(); } } }
Step 3:-
Add following code to app.component.ts
import { Component, OnInit } from '@angular/core'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.scss'] }) export class AppComponent { userForm: FormGroup | any constructor(private fb: FormBuilder) { this.userForm = this.fb.group({ name: ['', Validators.required], contactNo: ['', [Validators.required, Validators.minLength(10)]], price :[''] }) } ngOnInit(): void { } }
Step 4:-
Add following code to app.component.html
<form name="artistForm" [formGroup]="userForm"> <label>Name : </label> <input type="text" name="name" formControlName="name"/> <br> <label>Contact No : </label> <input type="text" name="contactNo" formControlName="contactNo" /> <br> <label>Price : </label> <input type="number" name="price" formControlName="price" appTwoDigitDecimaNumber/> </form>
Step 5:-
npm start
In this article, we have to show Create and Used PIPE in angular
In this article, we have to show Create and Used PIPE in angular
In this article, we have to show Create and Used PIPE in angular