2017-03-03 47 views
1

我有这个指令,应该跟踪应用程序中所有组件的点击次数。检查是否有点击操作很容易;我注入了一个Renderer的实例,并将其称为listenGlobal()方法,并在每次点击时在控制台上记录一条消息。这是代码;有没有一种方法可以跟踪使用renderer.listenGlobal()侦听点击时执行点击的位置?

export class TrackerDirective { 
    constructor(private _renderer: Renderer) { 
     let listener = this._renderer.listenGlobal("document", "click",() => 
      { 
       console.log("Clicked..."); 
      } 
     ); 
    } 
} 

现在的问题是,有没有一种方法可以跟踪点击实际执行的元素(或组件)?我知道使用ElementRef和@HostListener()来跟踪事件,但我无法使用它们。任何帮助将不胜感激。

回答

0

如果你添加一个参数到事件处理程序,你会得到事件传递

export class TrackerDirective { 
    constructor(private _renderer: Renderer) { 
     let listener = this._renderer.listenGlobal("document", "click", (event) => 
      { 
       console.log(event.screenX, event.screenY, event.clientX, event.clientY); 
      } 
     ); 
    } 
} 

又见https://developer.mozilla.org/en/docs/Web/Events/click你可以单击事件得到其他值。

+0

谢谢。奇迹般有效。 –

相关问题