2017-07-02 120 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