【发布时间】:2019-03-11 20:51:58
【问题描述】:
在我的 Angular 应用程序下,我正在使用一些在我的组件中呈现的第三个库小部件。
我的模板是:
<div>
<myWidGet></myWidGet>
</div>
在myWidGet 里面有一些按钮元素,我想处理它们的事件。
该按钮有这些类:.dx-edit-row .dx-command-edit .dx-link-save
所以我这样做了:
export class myClass AfterViewInit {
constructor(private elRef: ElementRef){}
ngAfterViewInit() {
this.elRef.nativeElement.querySelector('.dx-edit-row .dx-command-edit .dx-
link-save').on('click', (e) => {
alert('test');
});
}
}
我的目的是获取参考到我的按钮并从中处理点击事件。
建议?
【问题讨论】:
-
我觉得我有点困惑。为什么要在 Angular 中使用原生 JS 查询选择器?您无法与这些按钮进行任何交互?
-
也许用
ViewChild获取myWidGet并尝试用querySelector获取按钮。虽然,这种做事方式不是“Angular”方式,但该按钮应该发出Output事件... -
您可以在
div上设置click事件处理程序并检查event.target的类以确定是否单击了小部件按钮(假设click事件传播没有停止)。 -
参见this stackblitz 了解事件委托的示例,正如我之前的评论中所建议的那样。
标签: javascript angular angular5 angular6 angular2-template