Javascript document.getElementsByClassName live html集合上的Angular 6 Click事件

Javascript document.getElementsByClassName live html集合上的Angular 6 Click事件,javascript,html,angular,Javascript,Html,Angular,我有一个[innerHtml],其中有几个类我想添加点击事件: 。。。 内部=server.getInnerHtml(); ngAfterViewInit(){ var els=document.getElementsByClassName(“highlight”);//我想要所有带有类“.highlight”的html元素 console.log(els.length);//它是0!!! Array.from(el).forEach(el=>{ 控制台日志(el) }); console.l

我有一个[innerHtml],其中有几个类我想添加点击事件:

。。。
内部=server.getInnerHtml();
ngAfterViewInit(){
var els=document.getElementsByClassName(“highlight”);//我想要所有带有类“.highlight”的html元素
console.log(els.length);//它是0!!!
Array.from(el).forEach(el=>{
控制台日志(el)
});
console.log(els);//我想这张打印得很好,因为是live collection
}

以下是stackblitz代码,用于侦听包含类名“highlight”的document.element的单击事件


试试
ngAfterViewInit
而不是
ngOnInit
@ConnorsFan哎呀,我的意思是把ngAfterViewInit放进去。不起作用,我想是因为innerHtml渲染需要时间,即使在视图初始化之后也是如此class@brk它是innerHtml中名为“inner”的元素。另一种方法是监听文档或窗口上的单击事件,并检查
事件.target
是否有
突出显示
类。谢谢!如果我设置了一秒钟的超时时间,这似乎是可行的,但不是在视图初始化之后,因为我正在从api获取数据。是否还要检查特定div的更改,然后在ngAfterVkewInit中运行代码?我们只能使用observable捕获异步代码。无法检查DOM是否已更改。请投票表决它是对的