在 Angular 组件的 Lifecycle 钩子函数 ngAfterViewInit() 中使用 setTimeout() 获取元素高度。示例代码如下:
import { Component, ElementRef } from '@angular/core';
@Component({
selector: 'app-root',
template: '元素内容',
})
export class AppComponent {
constructor(private el: ElementRef) {}
ngAfterViewInit() {
setTimeout(() => {
const elementHeight = this.el.nativeElement.offsetHeight;
console.log(elementHeight);
}, 0);
}
}
在模板中使用 ElementRef 获取元素的引用,然后在 ngAfterViewInit() 钩子函数中使用 setTimeout() 获取元素高度。setTimeout() 函数将任务推迟到下一个 JS 循环中执行,这样就能够正确获取元素的高度了。