使用 angular8 在循环中传递参数 onclick

Ahm*_*bib 4 javascript parameter-passing ngfor angular8

我有一个对象数组。我正在循环中迭代,并将每个项目的名称传递给onclick,它针对资产文件夹openIt(val)中的app.js文件中的函数。IE

角度代码:

<div *ngFor="let item of listArray">
<button class="tabopen" onclick="openIt(item.name)">{{item.name}}</button>
</div>
Run Code Online (Sandbox Code Playgroud)

app.js 代码:

function openIt(data) {
console.log(data);
}
Run Code Online (Sandbox Code Playgroud)

在app.js 文件中的openIt 函数中,我没有得到item.name。在我的控制台中,它显示了item is not defined 的错误。但是当我传递静态数据时,即onclick="openIt('sample_data')"它没有显示任何错误。

即使 item.name 也存在,我也得到了正确的值。我不明白为什么我无法将迭代数据传递给参数。

Mih*_*nut 6

如果您正在使用Angular,那么你应该一起去(click),因为当你声明的事件处理程序,你需要围绕DOM 事件的名称parentheses,并分配一个模板声明它。

<button class="tabopen" (click)="openIt(item.name)">{{item.name}}</button>
Run Code Online (Sandbox Code Playgroud)