Google Map автозаполнение в ajax инъекций - PullRequest
1 голос
/ 15 апреля 2020

Я использую метод Ajax, чтобы открыть партиал для моего нового события. В этой части у меня есть форма для создания события.

Итак, я хотел бы использовать автозаполнение gmaps в этом введенном фрагменте.

Я уже использую этот код в форме c (для визуализации нет ajax). И он отлично работает (так что API хорошо настроен). Но когда я пытаюсь повторно использовать этот код в частичном вводе через AJAX, он больше не работает!

Частичном вводе для нового события:

# events/_new.html.erb

<script type="text/javascript"  src="https://maps.googleapis.com/maps/api/js?libraries=places&key=AIzaSyAnjmxMT31wiBEdoIn3vgjpnynAGjxY1Ds"></script>

<div class="modal" id="new_event">
  <div class="col s12">
    <label for="autocomplete-input">Adresse</label>
    <input type="text" id="autocomplete_address" name="adress" class="autocomplete">
  </div>
</div>
<input type="text" id="company_info_adress" name="company_info_adress" style="display: none;">

<script>
  $(document).ready(function(){
    $('#new_event').modal();
    $('#new_event').modal("open");

    function initializeAutocomplete(id) {  
      var element = document.getElementById(id);  
      if (element) {    
        var autocomplete = new google.maps.places.Autocomplete(element, { types: ['geocode'], componentRestrictions: {
            country: 'FR'
          } });
        google.maps.event.addListener(autocomplete, 'place_changed', onPlaceChanged);
      }
    }
    function onPlaceChanged() {  
      var place = this.getPlace();
      $('#company_info_adress').val(place.formatted_address);
    }
    google.maps.event.addDomListener(window, 'load', function() {
      initializeAutocomplete('autocomplete_address');
    });
  });

</script>

Я думаю, это строка: google.maps.event.addDomListener(window, 'load', function() {, которая должна быть обновлена ​​в соответствии с моим ajax рендером

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...