2017-07-02 23 views
4

イベントをこの "tmp"とバインドしたいのですが、これは以前の既存のボタンにも付いています。なぜですか?これは以下のようにRenderer2を使用して達成することができるイベントバインディング角度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

成分

constructor(private renderer: Renderer2){} 

イベントリスナーを登録するRenderer2サービスを注入

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

コールバックlisten方法を用いてイベントがトリガされたときに関数が実行されます。

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

注:詳細についてはrefer docsを聞くためのメソッド定義

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

LIVE DEMO