2017-02-28 7 views
0

をMOUSEMOVEするためにアンバインドするには2、:アンギュラ私はこのようなHostListenerデコレータを使用してイベントにバインドする方法を知ってどのように動的に結合して、イベント

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

しかし、私はバインドできるようにしたいとのMouseMoveにバインド解除うイベントは、コンポーネントのライフサイクル全体を通じて断続的に発生します。私はこのタイプのバインディングが呼ばれているか分からず、それについて何も見つけることができません。ネイティブの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; 
} 
関連する問題