angular - 单击卡片上的按钮更改卡片内容样式
问题描述
在我的组件中,我通过 *ngFor 生成了 mat-card(这是另一个组件)。单击卡片上有一个按钮应该设置相同的卡片元素样式(我可以这样做。)但是如果我单击另一个卡片按钮,它应该设置那个样式并将前一张卡片的样式恢复为原始样式。 (这部分面临的问题)。下面是示例代码
父组件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(){
this.enableStyle=true;
}
解决方案
我假设你有你的水果的身份证。如果是这样,您可以执行以下操作:
<span [ngClass]="{'selectedCSSClass':fruit.id == selected}">{{fruit}}</span>
<button (click)="selected=fruit.id">
第一行将检查所选内容是否与fruit.id 相等,并且按钮将使用当前fruit.id 设置所选内容。你甚至不需要选择功能。
推荐阅读
- java - Springboot JPA 将列连接为实体
- android - 异常的 WRAP_CONTENT 行为
- google-roads-api - Google Roads API“未找到请求的实体”
- regex - 使用额外参数和更改函数名称的批量重构函数调用
- c# - 如何使用 [HttpPut] 动词访问 WebApi 控制器中的 HttpParams
- php - 如何在 laravel Eloquent 中获取包含多个表的整个对象?(数据库结构已更新)
- python - Python-Pandas:如何通过一列中有多少相似值来创建排序数据框?
- python - Bot无法连接语音通道
- css - 如何使用 bootstrap4 增加容器的最大宽度?
- php - 如何将 php 代码转换为 oracle 包以使用关联数组删除 SQL