Removing EventListener in ngOnDestroy

后端 未结 5 1619
别跟我提以往
别跟我提以往 2021-01-04 18:56

I have the following implementation of a directive. How to removeEventListener in this case:

import { Directive, ElementRef, OnDestroy } from \"@angular/core         


        
5条回答
  •  失恋的感觉
    2021-01-04 19:16

    This should solve the problem:

    import { Directive, ElementRef, OnDestroy } from "@angular/core";
    
    @Directive({
        selector: "[Enter]"
    })
    export class Enter implements OnDestroy{
        private enter;
        constructor(el: ElementRef) {
            this.enter = function(event){
                if(event.keyCode === 13){
                    el.nativeElement.click();
                    console.log("enter triggered");
                }
            }
            document.addEventListener('keyup', this.enter , false);
            console.log("Added event listener");
        }
    
        ngOnDestroy(){
            document.removeEventListener('keyup', this.enter, false);
            console.log("Removed event listener"); 
        }
    }
    

    Hope this helps.

    Cheers, SZ

提交回复
热议问题