2017-07-02 223 views
4

我想用這個「tmp」綁定事件,但是這也附加了以前的現有按鈕,爲什麼?事件綁定角2

constructor(private renderer :Renderer ,private element : ElementRef){ 
     } 
    private appender(){ 
     var tmp = this.renderer.createElement(this.element.nativeElement,'button'); 
     this.renderer.listen(tmp, 'click', (event:Event) => console.log(event)); 
    } 
+0

你是什麼意思'這個 「TMP」'? –

+0

代碼不足,請儘可能多的代碼以獲得幫助 – Skeptor

+0

「this」指的是以角度2寫入的組件。 –

回答

1

這可以使用Renderer2如下來實現,

注入Renderer2服務到組件

constructor(private renderer: Renderer2){} 

註冊事件偵聽器使用listen方法

this.renderer.listen('body', 'click',this.calback) 

回撥函數將在事件觸發時執行。

calback(event){ 
    console.log(event) 
} 

注:聽refer docs瞭解更多信息方法定義

listen(target: 'window'|'document'|'body'|any, eventName: string, callback: (event: any) 

LIVE DEMO