嘿我试图将* ngFor循环中的id值从我的组件中的方法中删除以删除特定对象 我的代码看起来像这样:
HTML:
<tr *ngFor="let c of myCompanyArray">
<td>{{c.id}}</td>
<td>{{c.companyName}}</td>
<td>{{c.password}}</td>
<td>{{c.email}}</td>
<td>
<a href="" class="tooltip">
<i class="fas fa-user-edit"></i>
<span class="tooltiptext">edit company</span>
</a>
</td>
<td>
<a class="tooltip" >
<i class="far fa-trash-alt" (click)="sendIdForDelete({{c.id}})"></i>
<span class="tooltiptext">delete company</span>
</a>
</td>
</tr>
组件:
sendIdForDelete(compid){
console.log("company id is : " + compid.value);
///this.dataService.deleteCompany(compid.value);
}
我尝试过的语法(click)=“sendIdForDelete({{c.id}})或(click)=”sendIdForDelete(c.id)“我总是得到unfined 非常感谢您的帮助,谢谢
答案 0 :(得分:3)
你应该在你的html中调用sendIdForDelete(c.id)并在你的组件中改变你的方法,如下所示
sendIdForDelete(compid: number){
console.log("company id is : " + compid);
}
在这种情况下,您将id(数字或字符串)传递给您的组件(.ts文件),并且您的函数(sendIdForDelete)应该只获取一个id。
现在你可以在函数中使用相应的id做任何事情。
答案 1 :(得分:0)
您不应在模板中使用插值,只需不使用 {{}}
,
<i class="far fa-trash-alt" (click)="sendIdForDelete(c.id)"></i>
并且在TS内部不使用值,因为您已经传递了一个数字,
sendIdForDelete(compid:any){
console.log("company id is : " + compid);
}