angular - 隐藏在 Angular 中的响应式表单中
问题描述
是否可以隐藏<th>
表格中的元素?我知道它可能在td's
. 我试图隐藏td's
该值是否为空,就像我在下面的代码中尝试过的一样。请在下面查看我的代码。谢谢。请查看此链接以编辑https://stackblitz.com/edit/angular-mjkwzu?file=app%2Fapp.component.html
<tr>
<th>Date of Birth</th>
<th>Nationality</th>
</tr>
</thead>
<tbody>
<tr *ngFor="let row of bookingsForm.controls.profiles.controls; let i = index" [formGroupName]="i">
<td *ngIf="row.value.date_of_birth !== null">{{row.value.date_of_birth}}</td>
<td *ngIf="row.value.nationality !== null">{{row.value.nationality}}</td>
</tr>
解决方案
你可以这样做:
在您的组件中,计算一个基于 的标志bookingsForm.controls.profiles.controls
,如下所示:
public hideNationality:boolean = bookingsForm.controls.profiles.controls.every(x => x.value == null);
然后使用 . 将此标志连接到您的列*ngIf
。
一种更优雅的方法是Map<string, boolean>
为每一列构建一个并在其中存储一个可见性标志。| keyvalue
然后通过管道对其进行迭代。
推荐阅读
- java - 用 long 计算素数(Java)
- php - Laravel:在选择框/下拉列表中使用与选项名称相同的列及其值?
- node.js - 如何在 node_modules 目录之外本地安装节点模块?
- powershell - 如何在 Powershell 中编辑 INI 文件值?
- java - 将 3 添加到随机数的开头
- python - NLTK。未找到朋克
- angular - Nativescript 对 tabsview 架构?
- python - 检查模拟方法的类对象
- ruby-on-rails - Ruby on Rails - ActiveRecord 关系无法识别的字段
- c# - 如何在使用 WIX.sharp 安装服务后运行 exe 文件(我的目标 - 为服务创建 msi)?