2017-02-28 371 views
0

我知道如何使用HostListener裝飾像這樣綁定到事件:角2,如何動態綁定和取消綁定mousemove事件

@HostListener('document:mousemove', ['$event']) 
    onMousemove(event) { 
    //Some code on mouse movement. 
    } 

但我想是能夠結合並取消綁定鼠標移動事件在組件的整個生命週期中間歇性地發生。我不知道這種類型的綁定被稱爲什麼,我什麼都找不到。我應該嘗試使用原生JavaScript事件綁定嗎?

+1

你能進一步解釋的情況下問題? – shusson

+0

如果您強制註冊,您只能解除綁定。如果您使用聲明式方法,則無法做到這一點。 –

回答

0

定義如下的輸出變量。

@Output() mouseEvent = new EventEmitter(); 

當你想發出像下面這樣的事件時使用這個變量。

<div (mouseover)="someOverFunction()" 
    (mouseleave)="someLeaveFunction()"> 
     <span *ngIf="mouseOverDiv == true">hello mouseover</span> 
     <span *ngIf="mouseOverDiv == false">hello mouseleave</span> 
</div> 

TS:要在HTML元素添加

<HTMLElement (mouseEvent) = "methodName()"></HTMLElement> 
0

HTML

this.mouseEvent.emit({value:paramValue}); 

調用鼠標事件

mouseOverDiv : boolean = false; 

someOverFunction(){ 
this.mouseOverDiv = true; 
} 

someLeaveFunction(){ 
this.mouseOverDiv = false; 
}