【发布时间】:2017-10-15 23:24:50
【问题描述】:
为了解释我在寻找什么,它最好地说明了 jQuery 的工作方式,您可以指定一个通用的 HTML 元素来监视事件:
$("label").on("click", function(event){
// do stuff to this element
});
或者传统的addEventListener
document.getElementsByTagName('label').addEventListener('click', function(event){
// do stuff to this element
});
我很惊讶在整个互联网上都没有看到这个解决方案,相反我看到了很多关于如何使用事件绑定的例子(click)="clickHandler" 显然你不想把那个处理程序放在你的视图中。
我能否获得一些关于如何在 Angular 中观看通用事件的指导/链接?
更新:
我很欣赏 @HostListener 监听整个 DOM 和 Renderer2 之间的辩论,这将适用于特定的一般元素,显然也适用于 Observable 选项。
【问题讨论】:
-
您是否希望动态附加事件?还是您只是更喜欢在 JS 端附加事件?就个人而言,我认为 Angular 模板语法中的事件绑定表示法:
(event)比在 JS 端完成所有工作更清晰、更干净。无论如何,你可以在这里找到你要找的东西:stackoverflow.com/questions/35080387/… -
如果你在不同的地方使用相同的处理程序,你可以尝试制作一个组件
-
嘿@AhmedMusallam 在我看来,应用事件绑定 20 多次似乎是错误的。但是
Renderer看起来像是答案,谢谢! -
这让我想知道您的组件的视图有多大,是否应该分解它。无论如何,如果是这样,我将问题标记为与我发布的问题重复。
标签: angular data-binding onclick dom-events