Я создал фрагмент кода API Карт Google, который отображает карту в поле:
var map;
function initMap() {
var mapCenter = {
lat: 50,
lng: 50
};
map = new google.maps.Map(document.getElementById('map'), {
zoom: 15,
center: mapCenter,
disableDefaultUI: true
});
map.setOptions({
minZoom: 5,
maxZoom: 20
});
};
<!DOCTYPE html>
<html>
<style>
.box {
width: 300px;
height: 300px;
border: 5px solid;
margin: auto;
}
}
</style>
<head>
</head>
<body>
<script async defer src="https://maps.googleapis.com/maps/api/js?key=API-KEY&callback=initMap">
</script>
<div class="box" id="map">
</div>
</body>
</html>
Теперь я хотел бы добавить эту карту в ионное содержание , которое включено в следующее:
LoginModal = __decorate([
Object(__WEBPACK_IMPORTED_MODULE_0__angular_core__["Component"])({
selector: 'page-login-modal',template:
'<ion-header class="{{customClasses}}">
<ion-toolbar>
<ion-title>{{ title | translate }}
</ion-title>
</ion-toolbar>
</ion-header>
<ion-content class="{{customClasses}}">
<div class="box" id="map">
</div>
</ion-content>'
}),], LoginModal);
return LoginModal;
}());
По этой причине я создал функцию JS (в том же файле, что и ion-content), чтобы сделать вызов API Карт Google и передать мои аргументы:
var map;
src="https://maps.googleapis.com/maps/api/js?key=API_KEY&callback=initMap";
LoginModal.prototype.initMap = function () {
var mapCenter = {
lat: 50,
lng: 50
};
map = new google.maps.Map(document.getElementById('map'), {
zoom: 15,
center: mapCenter,
disableDefaultUI: true
});
map.setOptions({
minZoom: 5,
maxZoom: 20
});
};
Приведенный выше код не отображает карту, а только поле. Я попытался поместить строку "src =" https: " в индексный файл. html (в теле и в голове), но снова отображается только поле.
Чтобы проверить, что мои функции JS могут изменять ионный контекст, я создал другую функцию (рядом с initMap ()), которая смогла заменить фотографию текстом после нажатия кнопки.
Какие изменения я должен сделать, чтобы отобразить карту (поскольку я могу сделать это в приведенном выше примере с фрагментом JS)?