В исходном коде то же условие применяется к привязке класса всех значков.Вот почему они все изменяются одновременно.
Вы можете определить свойство hoverElement
в классе компонента.Он будет установлен для элемента hovered на mouseover
и сброшен на mouseleave
.Условие привязки класса будет проверять, соответствует ли переменная element
этому hoverElement
:
<div class="elm" *ngFor="let element of callWorkflowData?.jobsList">
<mat-card (mouseover)="hoverElement = element" (mouseleave)="hoverElement = null">{{element}}
<mat-icon [ngClass]="hoverElement === element ? 'show-icon' : 'hide-icon'" ...>add</mat-icon>
</mat-card>
</div>
См. этот стек для демонстрации.
Обратите внимание, что тот же результат может быть достигнут только с помощью CSS и селектора :hover
:
mat-card mat-icon {
color: orange;
}
mat-card:hover mat-icon {
font-weight: bold;
color: darkgreen;
}
См. этот стек для демонстрации.