У вас есть один компонент, который отображает несколько элементов, которые вы хотите индивидуально оформить. Но для этого вы используете одну переменную экземпляра, совместно используемую всеми этими дочерними элементами.
Наиболее интуитивным решением было бы создание компонента, который отображал бы один блок и обрабатывал события мыши.
Другим решением было бы использование словаря, чтобы узнать, какой элемент должен быть стилизован по-другому, например:
export class CuadrosComponent implements OnInit {
hoveredComponents: {[id: string]: boolean};
//...
onMouseOver(id: string) {
this.hoveredComponents[id]=true;
}
onMouseOut(id: string) {
this.hoveredComponents[id]=false;
}
html:
<ng-container *ngFor="let auto of autos">
<div
[id]="auto.submarca"
class="card-cuadro"
[class.hovered]="hoveredComponents[auto.submarca]"
(mouseover)="onMouseOver(auto.submarca)"
(mouseout)="onMouseOut(auto.submarca)"
#cardCuadro
>
css :
.card-cuadro.hovered img {
display: block;
}
.card-cuadro:not(.hovered) img {
display: none;
}