我正在使用 Ionic 3 和 Angular 5,我想在我的应用程序上显示地图。我创建了一个地图组件,但在页面刷新后显示地图时遇到了麻烦。
地图组件
地图.html
<div id="map" style="height:100%; width: 100%;"></div>
地图.ts
基本上,我创建了一个新的原始地图元素,以避免在同一个 HTML 元素上初始化地图,这会导致 Leaflet 错误(“地图容器已初始化”)
ngOnInit() {
var map: any = null;
var mapElement = document.getElementById("map");
mapElement.parentElement.innerHTML = '<div id="map" style="height:100%; width: 100%;"></div>';
console.log("new map element created");
var initMap = function () {
console.log("init map..");
L.mapquest.key = 'XXXXXX';
map = L.mapquest.map('map', {
center: [37.7749, -122.4194],
layers: L.mapquest.tileLayer('map'),
zoom: 15
});
}
initMap();
}
结果
地图第一次正确显示。但是当我第二次返回显示地图的页面时,我没有收到任何错误,但我只是得到一个空白的 div 元素,好像 Leaflet 无法初始化地图。此外,在控制台中,我看到元素是在地图初始化之前创建的,所以它应该可以工作。
你有什么意见可以帮助我解决这个问题吗?提前致谢。