首页 > 解决方案 > 如何将 Google Places api 工作代码放在 IIFE 下

问题描述

var calli = (function(){

    var inputbox, geocoder;

function initAutocomplete() {
  geocoder = new google.maps.Geocoder();
  inputbox = new google.maps.places.Autocomplete(
             (document.getElementById('input-box')), {
              types: ['geocode']
             });


  inputbox.addListener('place_changed', fillInAddress);  
}

function fillInAddress() {
  var getplace = inputbox.getPlace();
  codeAddress(document.getElementById('input-box').value);
}

function codeAddress(address) {
   geocoder.geocode({
           'address': address
            }, 
            function(results, status) {
              if (status == 'OK') 
                 { console.log('hi');
                   var senddata = $.get('/myurl',{params}, function (data) {});

               } else {
                       alert( status);
                  }
            });
}

 return (initAutocomplete); 
 })();

calli();

当我在没有 IIFE 的情况下使用上面的代码时,它可以正常工作,给出自动完成下拉列表。
但是,当我像上面那样使用它时,什么都没有发生,没有错误,只是AuthenticationService被调用,没有调用AutocompletionService.GetPridictions?发生。

关于我错在哪里的任何建议?非常感谢.iife

标签: javascriptgoogle-places-api

解决方案


推荐阅读