Search code examples
htmlangulartypescript

want to a trigger a function when we click on the specific key?


we will trigger a function based on the charcode values of the keys.

Here is the example to get the the charcode values of the keys

window:keypress is an javascript event.this event was trigerred all over the window

<div>
<p (window:keypress)="getcharcodeValue($event)">Click me!</p>
</div>
<p*ngIf="show">show me</p>

for Example, we want to trigger the getcharcodeValue() function for the key Enter.the keycode for Enter is 13.now all over the window when we press the enter key the function will trigger intially set the value oof show is true

triggerFunction(){
this.show = true
}
getcharcodeValue(event:any){
    if(event.keyCode == 13){
      triggerFunction()
}

Solution

  • You are looking for host listener, we can directly specify the event we need and just toggle the flag

    Full code

    import { CommonModule } from '@angular/common';
    import { Component, HostListener } from '@angular/core';
    import { bootstrapApplication } from '@angular/platform-browser';
    import 'zone.js';
    
    @Component({
      selector: 'app-root',
      standalone: true,
      imports: [CommonModule],
      template: `
        <div>
          <p>Click me!</p>
        </div>
        <p *ngIf="show">show this</p>
      `,
    })
    export class App {
      name = 'Angular';
      show = false;
    
      @HostListener('document:keydown.enter', ['$event']) onKeydownHandler(
        event: KeyboardEvent
      ) {
        this.show = true;
      }
    }
    
    bootstrapApplication(App);
    

    Stackblitz Demo