如何从动态元素angular2中获取值

时间:2017-10-27 07:46:06

标签: typescript

HTML:

<tr *ngFor="let item of items">
      <td #id>{{item.id}}</td>         
      <td>{{item.comment}}</td>
      <td> <i class="fa fa-trash-o" aria-hidden="true"  (click)="deleteTime(id.value)"></i></td>
    </tr>

组件中的DeleteTime方法:

deleteTime(id_value) {
let id = id_value;
var arg= {
  "id": id
};

this.myService.deleteTime(arg).subscribe();
  }

成功我正在创建我的html元素,当用户单击图像时,deleteTime按钮单击事件正在激活,但id.value未定义,因此我无法删除该项目。问题在于我没有正确地使用 #id td 的值。我尝试传递clickevent {{item.id}},但后来遇到了语法错误。

2 个答案:

答案 0 :(得分:0)

<tr *ngFor="let item of items">
  <td #id>{{item.id}}</td>         
  <td>{{item.comment}}</td>
  <td> <i class="fa fa-trash-o" aria-hidden="true"  (click)="deleteTime(id)"></i></td>
</tr>

deleteTime(idElement:HTMLElement) {
let id = idElement.InnerText;
var arg= {
 "id": id
};

this.myService.deleteTime(arg).subscribe();
}

我没有尝试传递值,而是传递了HTML元素并使用了它的内部文本。

答案 1 :(得分:0)

我不得不说这是非常糟糕的做法。使用项目中的id而不是使用innerHTML。 deleteItem(item.id)就是这样

你不需要这个

let id = idElement.InnerText;
var arg= {
 "id": id
};