【发布时间】:2018-09-02 21:03:47
【问题描述】:
我希望向用户显示一张图片,其中包含不同数量的 div(取决于检测到的面孔数量),这些 div 应该是可点击的(点击一张面孔将显示该特定面孔的一些属性)。
所以理想情况下,我想在每个面周围创建一些 div(或按钮),并为每个元素设置类似 (click)="divClicked()" 的内容。 但是,(click) 不是合法属性,因此,例如,尝试类似
d3.select('button').attr('(click)','onClickMe()');
给出一个错误。 onclick 是一个合法属性,但通过使用它,我认为我应该打破 Angular 想要我工作的方式(因为将函数放在组件的 ts 文件中会导致错误 onClickMe is not defined)。
我能想到的最好的解决方法是为每个 div 分配一个 id,然后执行类似的操作
document.getElementById('b1').onclick=this.onClickMe;
但这感觉像是糟糕的编码。
那么,这样做的干净方法是什么?
【问题讨论】:
-
你有这方面的 Stackblitz 吗?
-
@SiddharthAjmera 不,我的 IDE 是 Visual Studio Code(我的操作系统是 Ubuntu)。
-
我的意思是你能创建一个在 StackBlitz 上复制这个问题的示例项目吗? stackblitz.com/fork/angular
-
哦!稍后如果有必要(因为我需要创建一些假数据,而不是从服务器复制处理 json 数据的整个代码),但问题本身是关于干净的编码而不是关于特定的项目/代码。
-
你为什么不认为
(click)是合法的?
标签: javascript angular