我正在尝试创建一个组件列表并附加一个点击事件监听器来注册所点击组件的索引。
我可以通过在我的叶节点附加事件监听器来实现这一点,因为它知道它的索引。但随后我不得不将事件冒泡多次,而不是我可能需要的。我更愿意做的是在叶子的父级有以下内容:
template: `
<trackpoint
*ngFor='#tp of lapData; #i=index'
[tp]='tp'
[index]='i'
[ngClass]="{selected:selectedTps[i]}"
(click)='handleClick($event)'>
</trackpoint>
`,
在我的 Controller 中
handleClick(e:MouseEvent) {
console.log(e);
this.lapEventHandler.next({
// I want to be able to access i from the template
});
}
我一直在检查 MouseEvent 对象,但虽然我可以在事件父对象中找到 Trackpoint,但我找不到 index
属性。我是不是在尝试做不可能的事情。
最佳答案
尝试
(click)='handleClick($event, i)
和
handleClick(e:MouseEvent, i: any)
关于 Angular 2 : click listener with *ngFor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34785428/