Angular карты Google - Ссылка на просмотр маршрутов требует времени, чтобы обновить происхождение и пункт назначения

Angular карты Google - Ссылка на просмотр маршрутов требует времени, чтобы обновить происхождение и пункт назначения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? Это угловые карты Google для угловых приложений. Очень проста в использовании. Вам не понадобится href

devpato 19.09.2018 08:01

Да, я использую AGM. agm-marker и информационное окно все работает нормально. Но мой вопрос заключается в том, как сначала выполнить событие щелчка, и после завершения события щелчка мне нужно открыть href. В основном мой вопрос не имеет ничего общего с agm конкретно.

Nancy 19.09.2018 08:03

Вы правы, я неправильно понял ваш вопрос. Я думаю, вы можете попробовать что-то подобное в getDirections () ... добавьте эту строку: window.open(https://www.google.com/maps/dir/?api=1&origin = {{‌​srcOriginLat}},{{src‌​OriginLng}}&destinat‌​ion = {{srcDestination‌​Lat}},{{srcDestinati‌​onLng}}&travelmode=d‌​riving" target='_blank');, и вы можете изменить это на <button> вместо <a>, если это не сработает, добавьте stackbliz, чтобы я мог вам лучше помочь.

devpato 19.09.2018 08:10

Я уже пробовал с window.open ('google.com/maps/dir/?api=1&origin= {{srcOriginLa‌ t}}, {{srcOriginLng}} ‌ & destination = {{srcDe‌ stinationLat}}, {{src‌ DestinationLng}} & tra‌ velmode = driving', ' _пустой'); Проблема в том, что параметры, переданные в {{}}, не принимают своих значений. Прикрепил скриншот.

Nancy 19.09.2018 08:15

@PatricioVargas любая идея о том, как установить задержку для href. Я в основном хочу, чтобы метод щелчка завершил свое выполнение, а затем выполнил href. Как этого добиться?

Nancy 19.09.2018 10:54

проблема в том, что это обратный вызов, поэтому вам нужно дождаться возврата обратного вызова. НЕ используйте setTime, delay или что-то подобное. Чем плохая практика. вы можете использовать .then (), но позвольте мне посмотреть, найду ли я лучшее решение, попытавшись воспроизвести вашу проблему. Если вы сделаете stackbliz, это будет здорово

devpato 19.09.2018 15:31

Хорошо, позвольте мне попробовать создать stackblitz, но пока в случае, если у вас есть какие-либо решения, это будет здорово

Nancy 20.09.2018 07:03
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
0
7
275
0

Другие вопросы по теме