Когда вы говорите *ngIf="hover==true"
, вы сравниваете все элементы цикла for с одной и той же переменной, поэтому все они будут отображаться / скрываться одновременно. Вам нужен способ дифференцировать каждый элемент. Если у вашего элемента карточки есть идентификатор, вы можете попробовать что-то вроде этого:
.html:
<mat-card (mouseover)="toggleHover(flashcard.id)" (mouseleave)="removeHover()" [className]="flashcard.privatno ? 'privatno' : 'javno'" *cdkVirtualFor = "let flashcard of flashcards; let i = index" (click)="loadOne(i)">
<mat-card-content>
<p>{{seci(flashcard.pitanje)}}</p>
</mat-card-content>
<mat-card-actions >
<button mat-button *ngIf="hoveredElement === flashcard.id ">LIKE</button>
</mat-card-actions>
</mat-card>
.ts
public hoveredElement:any;
toggleHover(id) {
this.hoveredElement = id
}
removeHover() {
this.hoveredElement = null;
}