在组件方法中使用* ngFor值

时间:2018-06-14 23:07:55

标签: html angular ngfor

嘿我试图将* 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 非常感谢您的帮助,谢谢

2 个答案:

答案 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);
}