Google map интегрирован javascript образом, и я хочу вызвать функцию углового2 внутри infowindow, как следующий код. Посмотрите на кнопку infoContent
.Как я могу вызвать функцию Angular2 из окна Google Map?
for (i = 0; i < locations.length; i++) {
let locLatLng = new google.maps.LatLng(locations[i].latitude, locations[i].longitude);
let infoContent = '<button (click)="myFunction(' + locations[i].id + ')">Details ...</button>';
marker = new google.maps.Marker({
position: locLatLng,
map: this.map
});
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
infowindow.setContent(infoContent);
infowindow.open(this.map, marker);
};
})(marker, i));
}
К сожалению, угловое событие щелчка (click)="myFunction()"
не может это сделать. Должен быть другой путь. Я был бы очень доволен, если кто-то может указать мне в правильном направлении. Заранее спасибо.
В чем проблема с вашим 'addListener()'? Если 'this.map' не работает, как ожидалось, см. Мой ответ ниже. Есть что-то еще? Некоторое сообщение об ошибке, ...? –
Открытие инфоиндуста отлично работает. Если я изменю путь от '(click)' до 'onclick', я получаю« Неотдача ReferenceError: myFunction не определен », но myFunction() находится внутри углового компонента. –
Думаю, вы должны использовать делегирование событий. Вы также можете взглянуть на этот вопрос http://stackoverflow.com/questions/6378007/adding-event-to-element-inside-google-maps-api-infowindow – yurzui