New to Angular so I cant seem to get it to work but I have a list of element which has the option that if somebody click on the element it show toggls between show/hide (toggle a class). My code works but it will toggle ALL elements at once instead of the one that has been clicked on. Looked for some examples online but found almost the same stuff.
// class
public toggleClass = false;
public onToggleDiv(): void {
this.toggleClass = !this.toggleClass;
}
// component
<div
class="group"
(click)="onToggleDiv()"
[ngClass]="{'active' : toggleClass}"
>
Some content
</div>
<div
class="group"
(click)="onToggleDiv()"
[ngClass]="{'active' : toggleClass}"
>
Some content
</div>
... and more divs
Solution for now (only 1 box can be open sadly)
// class
public toggleRow: boolean | number = false;
public onToggleDiv(): void {
this.toggleRow = this.toggleRow === id ? false : id;
}
// component
<div
class="group"
(click)="onToggleDiv(1)"
[class.active]="toggleClass === 1"
>
Some content
</div>
<div
class="group"
(click)="onToggleDiv(2)"
[class.active]="toggleClass === 2"
>
Some content
</div>
... and more divs