I имеет приведенный ниже код для захвата исходной и конечной точек при нажатии кнопки просмотра направлений. Проблема заключается в нажатии кнопки направления просмотра, URL-адрес href загружается сначала до того, как событие onclick завершит свое выполнение. Как загрузить URL-адрес href после выполнения функции, переданной событию click. В приведенном ниже коде я фиксирую широту и долготу отправления и назначения в методе getDirection, и как только значения доступны только, должен быть загружен внешний URL-адрес href. Но в моем случае при первом щелчке, поскольку значения источника и назначения недоступны, URL-адрес имеет пустое значение, тогда как после второго щелчка значения доступны.
<a (click) = "getDirection(m.geometry.location.lat,m.geometry.location.lng)" href = "https://www.google.com/maps/dir/?api=1&origin = {{srcOriginLat}},{{srcOriginLng}}&destination = {{srcDestinationLat}},{{srcDestinationLng}}&travelmode=driving" target='_blank'>Directions</a></button>
getDirection(dirLat: any, dirLng: any) {
let srcLat, srcLng;
if ('geolocation' in navigator) {
navigator.geolocation.getCurrentPosition((position) => {
srcLat = position.coords.latitude;
srcLng = position.coords.longitude;
console.info('srcLatsrcLng1', srcLat, srcLng);
this.dir = {
origin: { latitude: srcLat, longitude: srcLng },
destination: { latitude: dirLat, longitude: dirLng }
};
this.srcOriginLat = this.dir.origin.latitude;
this.srcOriginLng = this.dir.origin.longitude;
this.srcDestinationLat = this.dir.destination.latitude;
this.srcDestinationLng = this.dir.destination.longitude;
});
}
}
Да, я использую AGM. agm-marker и информационное окно все работает нормально. Но мой вопрос заключается в том, как сначала выполнить событие щелчка, и после завершения события щелчка мне нужно открыть href. В основном мой вопрос не имеет ничего общего с agm конкретно.
Вы правы, я неправильно понял ваш вопрос. Я думаю, вы можете попробовать что-то подобное в getDirections () ... добавьте эту строку: window.open(https://www.google.com/maps/dir/?api=1&origin = {{srcOriginLat}},{{srcOriginLng}}&destination = {{srcDestinationLat}},{{srcDestinationLng}}&travelmode=driving" target='_blank');, и вы можете изменить это на <button> вместо <a>, если это не сработает, добавьте stackbliz, чтобы я мог вам лучше помочь.
Я уже пробовал с window.open ('google.com/maps/dir/?api=1&origin= {{srcOriginLa t}}, {{srcOriginLng}} & destination = {{srcDe stinationLat}}, {{src DestinationLng}} & tra velmode = driving', ' _пустой'); Проблема в том, что параметры, переданные в {{}}, не принимают своих значений. Прикрепил скриншот.
@PatricioVargas любая идея о том, как установить задержку для href. Я в основном хочу, чтобы метод щелчка завершил свое выполнение, а затем выполнил href. Как этого добиться?
проблема в том, что это обратный вызов, поэтому вам нужно дождаться возврата обратного вызова. НЕ используйте setTime, delay или что-то подобное. Чем плохая практика. вы можете использовать .then (), но позвольте мне посмотреть, найду ли я лучшее решение, попытавшись воспроизвести вашу проблему. Если вы сделаете stackbliz, это будет здорово
Хорошо, позвольте мне попробовать создать stackblitz, но пока в случае, если у вас есть какие-либо решения, это будет здорово





Вы думали об использовании AGM? Это угловые карты Google для угловых приложений. Очень проста в использовании. Вам не понадобится href