Angular2:使用* ngFor

时间:2016-01-14 09:07:08

标签: angular

我正在尝试创建一个组件列表并附加一个click事件监听器,用于注册所单击组件的索引。

我可以通过在我的叶子节点上附加事件监听器来实现这一点,因为它知道它的索引。但后来我不得不再次冒这个事件了。我更喜欢做的是在叶子的父母处有以下内容:

  template: `
    <trackpoint
        *ngFor='#tp of lapData; #i=index'
        [tp]='tp'
        [index]='i'
        [ngClass]="{selected:selectedTps[i]}"
        (click)='handleClick($event)'>
    </trackpoint>
  `,

并在我的控制器中

handleClick(e:MouseEvent) {
   console.log(e);
   this.lapEventHandler.next({
   // I want to be able to access i from the template
  });
}

我一直在检查MouseEvent对象,但是虽然我可以在事件父项中找到Trackpoint,但我找不到index属性。我是不是想做不可能的事。

1 个答案:

答案 0 :(得分:7)

尝试

(click)='handleClick($event, i)

handleClick(e:MouseEvent, i: any)