Removing EventListener in ngOnDestroy

后端 未结 5 1624
别跟我提以往
别跟我提以往 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:24

    Make it like this:

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

提交回复
热议问题