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

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

角度代码:

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

app.js代码:

function openIt(data) {
console.log(data);
}

在我的app.js文件的OpenIt函数中,我没有获得item.name。在我的控制台中,它显示错误项未定义。但当我传递静态数据时,即onclick="openIt('sample_data')"没有显示任何错误。

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


解决方案

如果您使用Angular,则应该使用(click),因为声明事件处理程序时,您需要将DOM事件名称括在parentheses中,并为其分配template statement。

<button class="tabopen" (click)="openIt(item.name)">{{item.name}}</button>

相关文章