Я пытаюсь инициализировать карту листовки на невидимом в данный момент ion-slide
.При перемещении к этому слайду карта-контейнер имеет высоту 0, а карта не отображается.При установке размеров контейнера-карты на фиксированный размер карта видна, но плитки не видны, карта просто серая.
Я попытался вызвать invalidate()
и снова удалить / создать карту, но безрезультатно.
моя домашняя страница
import {
Component
} from '@angular/core';
import * as leaflet from "leaflet";
@Component({
selector: 'page-home',
templateUrl: 'home.html'
})
export class HomePage {
map;
constructor(){
}
onChange(event){
if(this.map && event.realIndex == 2){
this.map.invalidateSize()
}
}
ionViewDidLoad(){
this.map = leaflet.map("MAP").fitWorld();
leaflet.tileLayer(
'http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png').addTo(this.map);
}
}
шаблон
<ion-content padding>
<ion-slides (ionSlideDidChange)="onChange($event)">
<ion-slide>
a
</ion-slide>
<ion-slide>
b
</ion-slide>
<ion-slide>
<div id="MAP" style="width: 500px; height: 500px"></div>
</ion-slide>
</ion-slides>
</ion-content>
Я ожидаю, что третий слайд будет содержать инициализированную карту, но он не /просто серый