You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular 2中动态构建点击事件失败,如何正确绑定?

问题原因与解决方案

嘿,这个问题我之前也踩过坑!你的绑定失效是因为在Angular的事件绑定里错误使用了插值语法{{ }}。

为什么原来的写法不行?

Angular的事件绑定(比如(click))的括号内部是直接的表达式执行上下文,它会直接解析你写的TypeScript风格表达式,不需要额外用插值符号来包裹变量。你写的deleteGrade({{ grade._id }})会被模板解析器当成无效语法,导致绑定根本无法生效。

正确的绑定方式

把插值符号去掉,直接传递变量grade._id就可以了:

修正后的 app.component.html

<tr *ngFor="let grade of grades">
  <td>{{ grade.grade }}</td>
  <td>
    <a (click)="deleteGrade(grade._id)" class="btn btn-danger">Delete</a>
  </td>
</tr>

app.component.ts 保持不变即可

deleteGrade(id) {
  console.log(id);
}

额外小提示

插值语法{{ }}只用于在模板中显示数据(比如<td>{{ grade.grade }}</td>这种场景),而事件绑定、属性绑定(比如[ngClass])这类场景里,直接写变量或表达式就好,不需要套插值哦!

内容的提问来源于stack exchange,提问作者Killer Beast

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:39:05