这次我需要有关如何在单击删除按钮时根据html-table中的行ID删除行的帮助。表数据源来自分离的Json文件。
表格如下: Image Link
<div class="container">
<table border=1 class="table">
<tr>
<th>ID</th>
<th>Name</th>
<th>Email</th>
<th>Age</th>
<th>Phone</th>
</tr>
<tr *ngFor="let d of data | async" [attr.id]="d.id"> <!--each row id == id-->
<td>{{ d.id }}</td>
<td>{{ d.name }}</td>
<td>{{ d.email }}</td>
<td>{{ d.age }}</td>
<td>{{ d.phone }}</td>
<button id="remove">DELETE ROW</button>
</tr>
</table>
</div>
&#13;
如果需要更多代码段,请与我们联系。谢谢。
答案 0 :(得分:1)
我会在按钮上添加一个(click)事件并传递'd'作为参数。然后在点击调用的函数中,我将拼接'已删除'项。
添加(点击)活动的代码:
<button id="remove" (click)="functionToDeleteItem(d)">DELETE ROW</button>
拼接数组并删除已删除项目的示例:
stackoverflow past example - How do I remove an array item in TypeScript?
另外,除非你在按钮中使用id =“remove”用于css之类的其他用途,否则我会删除它,因为它不需要。
答案 1 :(得分:1)
您可以在HTML文件中添加此代码
<div class="container">
<table border=1 class="table">
<tr>
<th>ID</th>
<th>Name</th>
<th>Email</th>
<th>Age</th>
<th>Phone</th>
</tr>
<tr *ngFor="let d of data | async" [attr.id]="d.id"> <!--each row id == id-->
<td>{{ d.id }}</td>
<td>{{ d.name }}</td>
<td>{{ d.email }}</td>
<td>{{ d.age }}</td>
<td>{{ d.phone }}</td>
<button id="remove" (click)="deleteRow(d.id)">DELETE ROW</button>
</tr>
</table>
</div>
并在您的组件文件中添加此代码
deleteRow(id){
for(let i = 0; i < this.data.length; ++i){
if (this.data[i].id === id) {
this.data.splice(i,1);
}
}
}
答案 2 :(得分:0)
<div class="container">
<table border=1 class="table">
<tr>
<th>ID</th>
<th>Name</th>
<th>Email</th>
<th>Age</th>
<th>Phone</th>
</tr>
<tr *ngFor="let d of data | async" [attr.id]="d.id"> <!--each row id == id-->
<td>{{ d.id }}</td>
<td>{{ d.name }}</td>
<td>{{ d.email }}</td>
<td>{{ d.age }}</td>
<td>{{ d.phone }}</td>
<button id="remove" (click)="deleteRow(d)">DELETE ROW</button>
</tr>
</table>
</div>
类型脚本
deleteRow(d){
const index = this.data.indexOf(d);
this.data.splice(index, 1);
}