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

标签 typescript angular5 angular7 angular8

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

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

app.component.html:

<div (click)="test(event)" #container></div>

app.component.ts:

test(e){
   alert(e.elementRef);
   //Output should be like alert("container");
}

最佳答案

Kamil Augustyniak在他的评论中写道,在您的 div 元素中使用 $event 而不是 event

<div (click)="test($event)" #container></div>

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

test(event: MouseEvent): void {
   const htmlElement = event.target || event.srcElement || event.currentTarget;;
   ...
}

Note however that #container in your div element is an Angular template reference variable that is commonly used together with a @ViewChild decorator.

关于typescript - 如何获取角度8中的元素引用名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60025072/

相关文章:

typescript - 我可以从 Typescript 中的类型中提取可选属性吗?

autocomplete - 无法绑定(bind)到 'suggestions',因为它不是 'p-autoComplete' 的已知属性

npm - 我们可以在角度中延迟加载包吗?我可以仅在单击某个按钮时下载所需的包吗?

unit-testing - 如何使用 ng-template 测试模态元素以及触发它的操作?

javascript - typescript :具有多余键的对象分配似乎已损坏

javascript - 如何将 MongooseArray.prototype.pull() 与 typescript 一起使用?

javascript - 请求的模块不提供名为

javascript - Angular 6 中的 CSS 间距问题

node.js - ./node_modules/elasticsearch/src/lib/utils.js 中的错误找不到模块 : Error: Can't resolve 'path' in\node_modules\elasticsearch\src\lib'

javascript - 无法从服务订阅数据到组件