Проблема: у меня есть HTML-код, который использует *ngFor для создания набора элементов div, принадлежащих одному классу. Я хочу иметь возможность добавлять активный класс к отдельным элементам. Однако я продолжаю сталкиваться с проблемой применения этого класса ко всем моим элементам, а не только к одному.
HTML:
<div class="feed" infiniteScroll [infiniteScrollDistance]="2" [infiniteScrollThrottle]="50" (scrolled)="onScroll()" >
<div class="mentions" *ngFor = 'let item of feed; let i = index;'>
<div class="content-wrapper">
<img src={{item.image}}>
<div class="content-text">
<div>{{item.name}}</div><br>
<div>{{item.text}}</div><br>
<div>{{item.followers}}</div><br>
</div>
</div>
<div class="votebtn">
<button mat-button matSuffix mat-icon-button aria-label="UpVote" id = u-{{item.source}} class="UpVote" (click)="vote(i, item, 'keep')">
<mat-icon>thumb_up</mat-icon>
</button>
<button mat-button matSuffix mat-icon-button aria-label="DownVote" id=d-{{item.source}} class=DownVote (click)="vote(i, item, 'ignore')">
<mat-icon>thumb_down</mat-icon>
</button>
</div>
</div>
</div>
Цель: В конечном счете, я хотел бы иметь возможность сделать что-то столь же простое, как добавить box-shadow: 1px -1px 12px 0px #c9c9c9
к одному элементу mentions
при наведении курсора мыши, а затем удалить его при выходе из мыши. Это моя последняя попытка.
<div *ngFor = 'let item of feed; let i = index;' [ngClass] = 'state' (mouseover) = "state = 'mentions hover'" (mouseout) = "state = 'mentions'">
Опять же, это добавило бы ко всем элементам.
item.state
, иначе есть только одно значениеstate
, которое будет общим для всех элементов. - person user184994   schedule 22.09.2018item
, вы имеете в виду объект, на который я ссылаюсь в своем*ngFor
, или это функция Angular? - person Evan Lalo   schedule 22.09.2018item
, созданная как часть вашегоngFor
(т.е.let item of feed
) - person user184994   schedule 22.09.2018