Я пытаюсь выполнить некоторые расчеты, основанные на ширине и высоте элемента, но по какой-то причине они не сразу доступны на хуке жизненного цикла AfterViewInit
(оба равны 0).
Хотя setTimeout
, кажется, делает свое дело, мне это не нравится.
Что вызвало это?
Есть ли более элегантное решение?
@ViewChild('main') mainDiv: ElementRef;
ngAfterViewInit() {
this.printMainHeight() // 0
// with setTimeout width is correctly retrieved ...
setTimeout(() => this.printMainHeight()) // 430
}
printMainHeight() {
console.log(this.mainDiv.nativeElement.getBoundingClientRect().height)
}
HTML
<div class"main" #main>
<app-toolbar></app-toolbar>
<app-list></app-list>
</div>