html - Angular 在 ngFor 循环中切换 div
问题描述
<div *ngFor="let item of items">
<div>Title</div>
<div class="show-more" (click)="do something">Show more</div>
<div class="extra-content">
<p>lorum ipsum bla bla bla</p>
</div>
</div>
如何通过单击 show-more div 元素来切换额外的内容 div。这对于集合中的每个项目必须是唯一的。
所以一个全局变量是不可用的,因为它会触发集合中的所有项目(同时)。
解决方案
show
在 中添加一个新属性item
,如下所示
items = items.map(item => ({...item, show: false}))
然后在点击时切换它。
<div *ngFor="let item of items">
<div>Title</div>
<div class="show-more" (click)="item.show = !item.show">Show more</div>
<div *ngIf = "item.show" class="extra-content">
<p>lorum ipsum bla bla bla</p>
</div>
</div>
这将为每一行/项目设置唯一的项目显示
推荐阅读
- .htaccess - htaccess - 如何在 url 中仅获取域名和一个变量
- windows - Visual Studio 上的最近项目未出现在右键单击 (Windows)
- typescript - 如何从 TypeScript 中的数组中获取只读项类型?
- python - 在 OpenGL 中的 3D 立方体切片上绘制 2D 数组
- python - 映射两个 Pandas DataFrame 的行
- html - Angular innerHTML 内容混乱。只有最后一个 innerHTML 正确显示
- javascript - 使用 jQuery 触发提交按钮
- azure-devops - 从 Azure DevOps 站点摘要部分中的标记获取数据以在 Power BI 中使用
- c# - 向 DataGridView 添加行时出现 NullReferenceException
- javascript - 澄清 setTimeout 和 forloop 交互的工作原理