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
相关产品推荐
相关产品推荐

