2016-04-05 20 views
1

Ben şu Bileşen: Ben bileşenine bir tık olay eklemek nasılKöşeli 2 Boş şablonla tıklama olayı nasıl eklenir?

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); 
    } 
} 

şablon boş olduğundan,? Tıklama etkinliği this.el eklenir çünkü

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

yerine bileşeni kendisi (konsol günlüğü ziyade TestComponent kendisinden daha> < test> </testi döndüren) arasında çalışmayacak unutmayın.

+0

bunun yerine bir yönerge kullanmayı düşünebilirsiniz boş şablon varsa. –

cevap

1

Sen konak-dinleyici kullanabilirsiniz:

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

Güzel! hızlı cevap için teşekkürler. – lys1030