Родной элемент имеет нулевой размер - PullRequest
0 голосов
/ 05 февраля 2019

В коде у меня есть ссылка на мой элемент DOM с использованием ViewChild.
Но если я попытаюсь проверить этот элемент в хуке ngAfterViewInit, я увижу, что у моего элемента есть offsetHeight и offsetWidth равен нулю. (Иногда все в порядке)
Я думаю, это потому, что созданный мною элемент еще не отрисован в Dom?
Есть ли какое-нибудь решение для этого?Я использую Ionic 4.

HTML:

<div id="map" #map [style.height.px] = "'300'" [style.width.px]="'100'"></div>
TS:

...
map: any;
@ViewChild('map') mapElement: ElementRef;

ngAfterViewInit() {
    this.loadMap();
}

loadMap() {  
    //usually return 0  
    console.log('height:' + this.mapElement.nativeElement.offsetHeight); 
    console.log('width:' + this.mapElement.nativeElement.offsetWidth);

    this.map = DG.map(this.mapElement.nativeElement);
}
...

Я ожидаю получить высоту 300 и ширину 100.

1 Ответ

0 голосов
/ 06 февраля 2019

Плохой код, но он работает

ngAfterViewInit() {
   setTimeout(() => {
      this.loadMap();
    }, 0);    
}
...