该问题可能出现在 Angular 的生命周期函数中,因为在元素被绑定到组件之前,它们尚未处于 DOM 中,因此无法通过类名查找它们。
为了解决这个问题,我们可以使用 AfterViewInit
钩子函数,该函数在视图已经初始化后被触发。在这个钩子函数里,我们可以使用 ViewChild
装饰器获取指定的元素。示例如下:
import { Component, AfterViewInit, ViewChild, ElementRef } from '@angular/core';
@Component({
selector: 'app-root',
template: `
This is my div
`
})
export class AppComponent implements AfterViewInit {
@ViewChild('myDiv', {static: false}) myDiv: ElementRef;
ngAfterViewInit() {
console.log(this.myDiv.nativeElement);
}
}
在上面的示例中,我们使用 ViewChild
装饰器获取被标记为 #myDiv
的元素,并在 AfterViewInit
中打印它。在视图已经初始化后,我们可以成功获取到这个元素并进行其它操作。