Child Component
export class ChildComponent {
@Input() public isActive: boolean = false;
@Output() public statClick = new EventEmitter<Event>();
public get classes(): string[] {
const active = this.isActive ? 'isActive' : '';
return [active];
}
public onStatClick(): void {
this.statClick.emit();
}
}
<div class="card" [ngClass]="{ active: isActive }" (click)="onStatClick()"></div>
Parent Component
export class ParentComponent {
public activeItem: ChartStat | null = null;
@Input() public isActive: boolean = false;
public onStatClick(clickedItem: ChartStat): void {
this.activeItem = clickedItem;
}
}
<app-child
[isActive]="item === activeItem"
(statClick)="onStatClick(item)"
/>