angular - 事件绑定(bind)中的动态模板变量

标签 angular event-binding

我有一个带有这种模板变量名的 Angular 组件

#name_{{i}}

在 *ngFor 中,这样生成的任何组件都有不同的变量名。 我需要将整个变量(不是作为字符串,作为对模板变量的引用)传递给同一个 *ngfor 中按钮事件绑定(bind)中的函数,就像这样

(click)="myFunction(name_{{i}})"

现在,我不能这样通过了

(click)="myFunction('name_'+i)"

因为 myFunction 不希望字符串作为变量,而是模板变量引用。

在事件绑定(bind)中传递插值会导致我出现此错误:

Parser Error: Got interpolation ({{}}) where expression was expected

由于变量是动态的,如何在不使用插值的情况下将模板变量传递给函数?

最佳答案

您不需要这样做。

您不必为每个实例生成一个名称,甚至不必使用@viewChildren。

您可以为 ngFor 生成的每个元素使用相同的引用名称。

事实上,引用调用会自动附加到它在 *ngFor 循环指令内生成的引用变量(它就像传递给 ngFor 指令的模板内的作用域)

你可以这样写:

<div #item *ngFor="let item of list" (click)="myFunction(item)"></div>

希望对您有所帮助:)

关于angular - 事件绑定(bind)中的动态模板变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59680300/

相关文章:

javascript - 如何将事件数据从下拉列表传递到按钮 Angular 2

onclick - 如何将wxpython listctrl与onclick按钮事件绑定(bind)

angular - 如何将 Angular 5 中的时间从 24 小时格式更改为 12 小时格式

angular - 使用类与使用现有

javascript - 如何在 Ionic 2 TypeScript 项目中包含外部 Javascript 库?

javascript - 如何触发动态创建的元素的点击

javascript - 添加新元素后事件监听器不起作用

angular - 如何使用 Javascript 在 Angular 2 中导入 ngFor?

angular - 无法将 ngModel 绑定(bind)到 ngx-bootstrap 分页

javascript - 如何将事件绑定(bind)到模态对话框上的组件?