Изменить стиль содержимого карты по нажатию кнопки на карте

В моем компоненте я сгенерировал мат-карту (которая является другим компонентом) через *ngFor. При нажатии на карточке есть одна кнопка, которая должна стилизовать те же элементы карточки (что я могу сделать). Но если я нажму на кнопку другой карточки, она должна стилизовать ее и вернуть прежние стили предыдущей карточки к первоначальному стилю. (Столкнувшись с проблемой в этой части). Ниже приведен пример кода

Html родительского компонента

<div class="ui-lg-3 ui-md-6 ui-g-12" *ngFor="let Obj of fruitList;let i=index;">
    <card-view-mini  [fruit]="Obj" (selectedFruit)="selectedFruit($event)"></card-view-mini>
</div>

дочерний компонент html"<div><mat-card> <span [ngClass]="{'selectedFruit':enableStyle}">{{fruit}}</span> <button (click)="changeStyle()"> </mat-card></div>"

changeStyle () changeStyle(){ this.enableStyle=true; }

1 ответ

Решение

Я полагаю, у вас есть идентификаторы для ваших фруктов. Если это так, вы можете сделать что-то вроде этого:

<span [ngClass]="{'selectedCSSClass':fruit.id == selected}">{{fruit}}</span>

<button (click)="selected=fruit.id">

где первая строка проверит, равно ли выбранное равно значению fruit.id, а кнопка установит выбранное с текущим fruit.id. вам даже не нужна функция выбора.

Другие вопросы по тегам