Can I run @Hostlistner with other mouse event?

Viewed 749

To avoid to set an unuseful listener, I would like to start the mousemove listener only when the mousedown event is run. Something like that :

Inside my component.ts

private startMouseMove(start: boolean){
   if(start){
        @HostListener('mousemove', ['$event'])
        onMouseMove(event: MouseEvent){
             console.log("start mousemove");    
             this.mousemove.emit(event);
        }
    }
}

@HostListener('mouseup', ['$event'])
onMouseup(event: MouseEvent){
    console.log(event.type);
    this.startMouseMove(false);
}

@HostListener('mousedown', ['$event'])
onMousedown(event: MouseEvent) {
    console.log(event.type);
    this.startMouseMove(true);
    return false; // Call preventDefault() on the event
}

That does not work of course. I would like to know if it's possible in Angular and if it's possible, how to do this?

1 Answers
Related