2017-03-03 54 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

謝謝。奇蹟般有效。 –

相關問題