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

Angular7中表格行点击事件函数无法触发问题求助

问题诊断与解决

老哥,你这问题的核心原因其实是混淆了AngularJS和Angular的事件绑定语法!你代码里用的是AngularJS的ng-click指令,但你的项目明显是Angular(从*ngFor、组件属性绑定[story]="selectedStory"这些特征就能看出来),Angular根本不识别ng-click,自然不会触发你的onUpdate函数,也不会报错——因为它把这个属性当成了普通的HTML属性处理了。

解决步骤:

只需要把所有的ng-click替换成Angular的标准事件绑定语法(click)就行:

修改后的HTML代码:

<h2>Userstories</h2>
<button (click)="onNewStory()">New Story</button>
<table>
  <!-- 把行上的ng-click改成(click) -->
  <tr *ngFor="let story of userstories" (click)="onUpdate(story)" [class.selected]="story === selectedStory">
    <td>{{story.id}}</td>
    <td>{{story.name}}</td>
    <!-- 按钮上的ng-click也改成(click) -->
    <td><button (click)="onUpdate(story)">Click me!</button></td>
  </tr>
</table>
<app-userstory-detail [story]="selectedStory"></app-userstory-detail>

验证效果:

修改完之后,不管点击表格行还是按钮,onUpdate函数都会正常触发,控制台也会输出你期望的selectedStory日志,同时选中的行会自动加上selected类的样式。

你的TS代码是完全没问题的,只需要调整HTML里的事件绑定语法就好啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 06:36:22