angular - Angular - 在循环中的特定项目上显示消息
问题描述
我有一个使用 For Loop 的行列表。点击任意一行,弹出一个模态窗口。模式窗口包含一个取消和确定按钮。单击“确定”按钮时,应在单击的 ROW 上显示一条消息。目前我可以获得该行的索引号,并且单击“确定”时该消息显示在所有行上。如何仅在该特定行上显示消息。
<div class="row" *ngFor="let item of items; let i = index">
<div class="row">
<div class="col-2">
<span (click)="showModalWindow">
<img class="actionIcon" src="images/action.png" />
</span>
</div>
<div class="col-4">
<div class="ietm-img" *ngIf="item.image">
<img [src]="item.image" alt="item" />
</div>
</div>
<div class="col-6">
<div class="text">
<h6>{{item.name}}</h6>
<p>MESSAGE NEEDS TO APPEAR ONLY ON THE SELECTED ROW</p>
<span>{{item.measurement}} {{item.length}}</span>
</div>
</div>
</div>
解决方案
由于您的数据似乎来自 API,您可能无法添加其他属性来跟踪行的选定状态。
考虑在单击行时捕获选定的行,如下所示,
<span (click)="showModalWindow(); selectedRow=i" style="border:1px solid red">
然后可以设置点击该行时的隐藏状态,
<p [hidden]="selectedRow !== i">MESSAGE NEEDS TO APPEAR ONLY ON THE SELECTED ROW</p>
在您的组件中,您需要一个变量来捕获状态
selectedRow: Number;`
完成的模板看起来像这样:
<div class="row" *ngFor="let item of items; let i = index">
<div class="row">
<div class="col-2">
<span (click)="showModalWindow(); selectedRow=i" style="border:1px solid red">
<img class="actionIcon" src="images/action.png" />
</span>
</div>
<div class="col-4">
<div class="ietm-img" *ngIf="item.image">
<img [src]="item.image" alt="item" />
</div>
</div>
<div class="col-6">
<div class="text">
<h6>{{item.name}}</h6>
<p [hidden]="selectedRow !== i">MESSAGE NEEDS TO APPEAR ONLY ON THE SELECTED ROW</p>
<span>{{item.measurement}} {{item.length}}</span>
</div>
</div>
</div>
</div>
推荐阅读
- caching - 设置关联缓存 - 有多少内存块映射到一组?
- ubuntu - Ubuntu - 使用用户输入的顺序文件命名
- c++ - 当我使用 1000 个键值的数据集时出现分段错误,并且由于某种原因,AVL 旋转不会发生在节点周围
- sas - 将数据字典拆分为输入/格式/标签文件时,SAS 导出文件是否有规范?
- python - Raspberry Pi 3 GUI 界面按钮和 LED 灯
- microsoft-graph-api - 扩展和过滤 MS Graph API 不起作用
- spatstat - 在 spatstat 中为锥形点云创建 pp3 点模式
- javascript - 如何修复 phpmyadmin 中的日期错误 0000-00-00?
- c - 使用 GLUT 和 C 编写文本
- javascript - html中的外部javascript文件不起作用