2016-04-05 11 views
1

I持って、次のコンポーネント:私はコンポーネントにクリックイベントを追加する方法角2空のテンプレートでクリックイベントを追加するにはどうすればよいですか?

import {Component, ElementRef} from 'angular2/core'; 

@Component({ 
    selector: 'test', 
    template: '' 
}) 
export class TestComponent { 

    el; 

    constructor(public elementRef: ElementRef) { 
     this.el = elementRef.nativeElement; 
     this.renderer = new THREE.WebGLRenderer(); 
     this.el.appendChild(this.renderer.domElement);  
    } 

    onClick() { 
     console.log(this); 
    } 
} 

テンプレートが空なので、?クリックイベントが代わりにコンポーネント自体の(コンソールログはなくTestComponent自体より<試験> < /試験>を返す)、this.elするために添加されているので

this.el.addEventListener('click', this.onClick, false); 

が動作しないことに注意してください。

+0

あなたがあなたの代わりにディレクティブを使用して検討するかもしれない空のテンプレートを持っている場合。 –

答えて

1

あなたは、ホスト・リスナーを使用することができます。

@Component({ 
    selector: 'test', 
    template: '' 
    host: {'(click)':'clickHandler($event)'} 
}) 
export class TestComponent { 
    // @HostListener('click') // alternative way to the decorator argument 
    clickHandler() { 
    doSomething(); 
    } 
} 
+0

ニース!高速返信のためのthx。 – lys1030

関連する問題