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