javascript - 在 ngFor 中显示特定的 Div
问题描述
我有一堆卡片使用 ngFor 和用户信息。卡内有一个按钮,将显示该特定用户的旅行信息。
我创建了一个具有初始状态的 div display: none
。我考虑过在点击时使用ngStyle
绑定display: block
属性,但问题是所有的 div 都被显示了,而不仅仅是我需要的特定的。
关于如何做到这一点的任何建议?
html
<div class="col s12 m6 l4" *ngFor="let student of students; let i = index">
<i class="material-icons" (click)="showBox()">access_alarm</i>
<div class="travel-info" [ngStyle]="{'display': boxDisplay == true ? 'block' : 'none'}" >
<app-travel-info ></app-travel-info>
</div>
</div>
ts
boxDisplay = false;
showBox() {
this.boxDisplay = true;
}
解决方案
问题是您只有一个为所有变量设置的变量。
您将希望将 showBox 重构为类似的东西。
TS
this.boxDisplay = this.students.map(s => false);
showBox(index) {
this.boxDisplay[index] = true;
}
HTML
<div class="col s12 m6 l4" *ngFor="let student of students; let i = index">
<i class="material-icons" (click)="showBox(i)">access_alarm</i>
<div class="travel-info" [ngStyle]="{'display': boxDisplay[i] == true ? 'block' : 'none'}" >
<app-travel-info ></app-travel-info>
</div>
</div>
如果是我,我会使用 ngIf 而不是 ngStyle。
<div class="col s12 m6 l4" *ngFor="let student of students; let i = index">
<i class="material-icons" (click)="showBox(i)">access_alarm</i>
<div class="travel-info" *ngIf="boxDisplay[i]" >
<app-travel-info ></app-travel-info>
</div>
</div>
推荐阅读
- sql-server - 连接规范化关系表以使用 select 填充它们的非规范化版本时出现问题
- javascript - 如何修复 JavaScript 中未捕获的 TypeError?
- amazon-web-services - 无法使用 logstash 将数据发送到 AWS 弹性搜索实例
- pipenv - Pipfile 对有效依赖项失败(6 个 1.12.0)
- python - Sklearn.svm.LinearSVC 不一致,通常它只预测 4 个结果中的 1 个,而其他次数更多,很少预测所有 4 个
- tensorflow - keras predict 只给出 1 但损失值减少
- javascript - 如何使用赛普拉斯授权标头中收到的令牌执行“重定向”?
- php - Curling 和 PHP 显示网站页表加载时间过长
- math - 在CUDA中计算球体距离的最有效方法?
- powershell - 用于删除一组服务器上所有过期证书的 Powershell 脚本