如何将 ngFor 循环的索引值传递给组件? [复制]

Posted

技术标签:

【中文标题】如何将 ngFor 循环的索引值传递给组件? [复制]【英文标题】:How to pass the index value of a ngFor loop into the component? [duplicate] 【发布时间】:2017-11-20 14:20:48 【问题描述】:

我的代码中有一个 ngFor 循环。 在这个 ngFor 循环中我有一个 div,点击这个 div 我想将索引值传递给类型脚本文件。

我是 Angular 2 的新手,任何帮助将不胜感激。

例如:

`<div *ngFor="let y of characters;let i = index">
    <div (click)="passIndexValue()">
    </div>
<div>`

【问题讨论】:

你为什么不使用“i”?我的意思是你可以将“i”传递给 passIndexValue() 函数吗? 【参考方案1】:
<div *ngFor="let y of characters;let i = index">
    <div (click)="passIndexValue(i)">
    </div>
<div>`


passIndexValue(index)
   console.log(index);//clicked index

你也可以像这样将值传递给组件(假设下面使用@Input)

<div *ngFor="let y of characters;let i = index">
    <childComponent [index]="i">
    </childComponent>
<div>`

然后在组件对象上取值:

@Input() index: number;

并像这样直接在子组件的模板中使用:

<div id="mydivinstance_index"></div>

从而允许组件具有基于 *ngFor 循环的唯一 ID。

【讨论】:

这不工作总是得到 0 @user1703145 能否请您发布您的代码,以便我为您修复它

以上是关于如何将 ngFor 循环的索引值传递给组件? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何将 ngFor 的动态索引添加到 html 属性值

将 ngFor 变量传递给 ngIf 模板

ngFor 将索引作为属性中的值

渲染组件后如何关注特定的输入文本?

如何将按钮的索引传递给 EventHandler?

在 Angular 7 中,选择下拉值 id 传递给 ngFor 列表中的所有选择下拉列表