Ead*_*den 2 event-binding angular
我有一个带有这种模板变量名称的角度组件
#name_{{i}}
Run Code Online (Sandbox Code Playgroud)
在 *ngFor 中,这样生成的任何组件都有不同的变量名。我需要将整个变量(不是作为字符串,作为对模板变量的引用)传递给同一个 *ngfor 内的按钮事件绑定中的函数,就像这样
(click)="myFunction(name_{{i}})"
Run Code Online (Sandbox Code Playgroud)
现在,我不能这样通过
(click)="myFunction('name_'+i)"
Run Code Online (Sandbox Code Playgroud)
因为 myFunction 不需要字符串作为变量,而是模板变量引用。
在事件绑定中传递插值会导致我出现此错误:
解析器错误:在需要表达式的地方得到了插值 ({{}})
由于变量是动态的,如何在不使用插值的情况下将模板变量传递给函数?
你不需要这样做。
您不必为每个实例生成名称,甚至不必使用 @viewChildren。
您可以为 ngFor 生成的每个元素使用相同的引用名称。
事实上,引用调用会自动附加到它在 *ngFor 循环指令内部生成的引用变量(它就像传递给 ngFor 指令的模板内部的范围)
你可以这样写:
<div #item *ngFor="let item of list" (click)="myFunction(item)"></div>
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你 :)
| 归档时间: |
|
| 查看次数: |
748 次 |
| 最近记录: |