angular - 如何让 *ngFor 循环执行前 n-1 次,不希望显示最后一个索引的数据?
问题描述
HTML:
<div *ngIf="userdata; else blank;">
<table>
<thead>
<tr>
<th>Id</th>
<th>Name</th>
<th>Email</th>
<th>Address</th>
<th>Role</th>
<th>Gender</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
<tr *ngFor="let data of userdata">
<td>{{data.Id}}</td>
<td>{{data.Name}}</td>
<td>{{data.Email}}</td>
<td>{{data.Address}}</td>
<td>{{data.Role}}</td>
<td>{{data.Gender}}</td>
<td>
<button type="button" (click)="setUser(data)" class="btn btn-default btn-sm edit">
<span class="glyphicon glyphicon-edit"/> Edit</button>
<button type="button" id="close" style="height: 30px;"
(click)="deleteUser(data.Id)" class="btn btn-default btn-sm close" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</td>
</tr>
</tbody>
</table>
</div>
<ng-template #blank>No Records found...</ng-template>
这正是我在 userdata Array 中得到的:
[{
"Id": "1",
"Name": "sdfd",
"Email": "fdg",
"Address": "dfg",
"Role": "Admin",
"Gender": "male"
}, {
"Id": "2",
"Name": "dgfhh",
"Email": "gdh",
"Address": "hhh",
"Role": "User",
"Gender": "female"
}, {
"Id": "3",
"Name": "dfgf",
"Email": "fgdh",
"Address": "fghd",
"Role": "Super-Admin",
"Gender": "male"
}, "{\"blank-email\":\"Email cannot be blank\",\"blank-role\":\"You must play some role\",\"blank-gender\":\"You must specify your Gender\"}"]
所以在这里,我不希望从数组中执行它:
"{\"blank-email\":\"Email 不能为空\",\"blank-role\":\"你必须扮演一些角色\",\"blank-gender\":\"你必须指定您的性别\”}”
解决方案
您可以添加*ngIf
和渲染不是最后的元素。
<tr *ngFor="let data of userdata; last as l">
<ng-container *ngIf="!l">
.....
</ng-container>
</tr>
相当好的方法是对 viewModel 集合本身进行切片或切块,并保留ngFor
该集合以在 UI 上显示它。
推荐阅读
- node.js - API 控制器:无法 PUT,无法删除(未找到 404)
- php - 在 MySQL DB 上按目标文件夹存储多个上传
- python - 如何将行数据与我在 sqlite3 python 中的输入数据进行比较?
- git - git move folder 仅通过区分大小写的名称更改
- android - Delphi Rio 无法读取设置了 READ_EXTERNAL_STORAGE 权限的外部存储
- c# - 如何使用 Selenium C# 查找网站的断开链接
- python - Python 整数 list.append() 操作问题
- azure - 从命令行发布 Azure DevOps 扩展失败并显示 401
- nim-lang - 如何在 Nim 中将单个字符转换为字符串?
- regex - 正则表达式匹配包含两个任意字符但不是三个的字符串