I am going through this tutorial to comprehend angular 2's ng-content. I want to capture event which is triggered on ng-content. I have following component:
@Component({ moduleId: module.id, selector: 'card', template: ` <ng-content (click)="onClick($event)"></ng-content> ` }) export class CardComponent { onClick(){ console.log('clicked'); } } Here, as you can see I am setting a listener to the click event. But for some reasons it is not triggering. It seems like the entire ng-content tag is replaced. So to capture the event currently I am doing this:
template: ` <div (click)="onClick($event)"> <ng-content></ng-content> </div> ` Is there any better way to do this? cause I don't want to wrap my ng-content into a div to avoid styling issues. Thanks. Plnkr