Angular2 - 当事件发射器不是事件目标时该怎么办?

时间:2016-02-26 09:23:49

标签: angular events html-table row

我想在mouseover事件中获取表的row元素。问题是事件目标是光标下的td元素而不是行元素本身。到目前为止,这与角度无关。它是一个DOM的东西。 这是我的组成部分:

@Component({
 //....
 template: `
  <tr *ngFor="#row of rows;" (mouseover)="onRowHover($event)">
   <td *ngFor="#cell of row.cells">{{cell.value}}</td>
  </tr>`
 })
 export class Table {
  private onRowHover(event) {
   console.log("hover", event.target); //will print "hover <td>"
  }
 }

要解决这个问题,我通常会使用&#39;这个&#39;来获取行,这将是行元素:

<tr onmouseover="console.log("hover", this)"> <!-- Will print "hover <row>" -->

所以问题是:我如何访问&#39;这个&#39;或Angular2中的行元素?是否有类似的东西:

<tr ... (mouseover)="onRowHover($event, $this)" >

我现在的解决方法是获取event.target的父级,这是适当的tr元素。

2 个答案:

答案 0 :(得分:2)

怎么样

 <tr #tr *ngFor="#row of rows;" (mouseover)="onRowHover(tr)"></tr>

答案 1 :(得分:0)

console.log(event.path[0]);

返回鼠标所在的最内层元素