2017-06-09 6 views
1

新しいアングル4レンダラーでリスナーを削除することはできますか?ここ 角度レンダラー2除去リスナー

はインターフェイスです:

abstract listen(target: 'window' | 'document' | 'body' | any, eventName: string, callback: (event: any) => boolean | void):() => void; 

レンダラで聞くV1とlistenGlobalは関数を返しますが、これはvoidを返します。

問題ですか?そうでない場合は、どのようにしてリスナーを削除できますか?

+1

'しかし、この1つは' void'を返す関数を返すvoid.'この1を返します。 – yurzui

+0

はい。私はインターフェイスを読んで眠っていたと思う – Serginho

答えて

12

Rendererとの違いはありません。

import { Renderer2 } from '@angular/core'; 

export class MyComponent { 
    listenerFn:() => void; 

    constructor(private renderer: Renderer2) {} 

    ngOnInit() { 
    this.listenerFn = this.renderer.listen(document, 'mousemove',() => console.log('move')); 
    } 

    ngOnDestroy() { 
    if (this.listenerFn) { 
     this.listenerFn(); 
    } 
    } 
}