javascript - Angular onclick 切换当前元素的书签图标样式

标签 javascript jquery angular

我正在尝试切换当前元素 onclick 的书签图标颜色,但它已应用于所有书签图标

<div *ngFor="let product of products">
    <mat-card class="col-md-3">
        <img style="height:100%; width: 100%;" src="{{ product.imageUrl }}" />
        <div class="card-body">
            <mat-card-title>{{product.name}}</mat-card-title>
            <mat-card-content>
                <p>{{product.description}}</p>
            </mat-card-content>
            <mat-card-subtitle>&#8377; {{product.price}}</mat-card-subtitle>
            <mat-card-actions>
                <button mat-flat-button color="primary" style="margin-right: 7px;"> Add to Bag </button>
                <button mat-icon-button aria-label="Example icon-button with a heart icon"
                    (click)="clickEvent($event)" style="float: right;">
                    <mat-icon [ngClass]="status ? 'bookmark' : 'bookmarked'">favorite</mat-icon>
                </button>
            </mat-card-actions>
        </div>
    </mat-card>
</div>

TS

status: boolean = false;
private clickEvent() {
    this.status = !this.status;
}

谢谢

最佳答案

那是因为您为每个项目使用了一个变量。为 products 数组中的每个项目创建一个状态键(示例如下所示)

<button mat-icon-button (click)="product.status = !product.status" style="float: right;">
  <mat-icon [ngClass]="product.status ? 'bookmark' : 'bookmarked'">favorite</mat-icon>
</button>

关于javascript - Angular onclick 切换当前元素的书签图标样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59893791/

相关文章:

javascript - hide() 在运行时不起作用

JavaScript 代码不断重复语句。我怎样才能阻止这个?

javascript - 如何使用jQuery/JavaScript实现轮播效果

angular - 如何根据 Angular 5 react 形式的列表验证 FormControl 值

javascript - Ngrx/效果 : get error TS2345: Argument of type 'Product[]' is not assignable to parameter of type 'Product'

javascript - 如何删除jquery中的nan

javascript - 获取访问者的纬度和经度并显示它的谷歌地图

javascript - 如何使用 jQuery 检查输入字符串中的大写字母

javascript - 单击时突出显示图像,然后选中单选按钮

javascript - 如何将从后端呈现的参数传递给angular2 bootstrap方法