角度2:使用*ngFor单击侦听器



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

我可以通过在我的叶节点上附加事件侦听器来实现这一点,因为它知道它的索引。但是,我不得不将事件比我可能需要的次数多冒一次。 我更愿意做的是在叶子的父级有以下内容:

  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 对象,但尽管我可以在事件父项中找到跟踪点,但我找不到 index 属性。我是否试图做不可能的事情。

尝试使用

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

handleClick(e:MouseEvent, i: any)

最新更新