如何获取角度8中的元素引用名称

Nil*_*ani 2 typescript angular5 angular7 angular8

尝试获取元素引用名称但不起作用。如果有人知道请帮助找到解决方案。

Alert 应该像容器一样。因为那是元素引用。

应用程序组件.html:

<div (click)="test(event)" #container></div>
Run Code Online (Sandbox Code Playgroud)

应用程序组件.ts:

test(e){
   alert(e.elementRef);
   //Output should be like alert("container");
}
Run Code Online (Sandbox Code Playgroud)

umi*_*der 5

正如卡米尔·奥古斯蒂尼亚克(Kamil Augustyniak)在他的评论中所写,在你的元素中使用$event而不是。eventdiv

<div (click)="test($event)" #container></div>
Run Code Online (Sandbox Code Playgroud)

test组件类中的方法将通过 a 调用,您可以从 HTML 元素的,或属性(取决于浏览器)MouseEvent获取对 HTML 元素的引用。targetsrcElementcurrentTarget

test(event: MouseEvent): void {
   const htmlElement = event.target || event.srcElement || event.currentTarget;;
   ...
}
Run Code Online (Sandbox Code Playgroud)

但请注意,#container您的元素中div有一个 Angular 模板引用变量,通常与@ViewChild装饰器一起使用。