Angular模板中如何引用循环变量作为属性方法调用参数
报错原因
Angular的事件绑定(click)的引号内部,本身就要求传入可在模板上下文执行的标准表达式,这里本身就处于Angular的表达式解析语境,不需要额外使用{{}}插值语法包裹变量。{{}}仅用于将表达式结果渲染输出为DOM文本内容,嵌套在事件绑定表达式内部就会触发你看到的解析错误。
修复方案
直接删除方法参数外层的{{}}包裹即可,*ngFor循环作用域内可以直接访问image变量的属性,修改后代码如下:
<div *ngFor="let image of images; let i=index;" class="m-image-wrapper"> <i class="fa fa-times m-delete-img" (click)="removeImage(i, image.docname)"></i> </div>
额外注意
不要在以下两类绑定语法内部混用{{}}插值:
- 事件绑定:形如
(click)、(input)等()包裹的事件监听绑定 - 属性绑定:形如
[src]、[class]等[]包裹的属性动态绑定
这两类绑定的引号内部已经是表达式解析环境,直接写入变量、方法调用即可,无需额外插值包裹。
内容的提问来源于stack exchange,提问作者pheromix
相关产品推荐
相关产品推荐

