在 typescript/javascript 的 google.maps.Geocoder().geocode() 上使用全局变量

Posted

技术标签:

【中文标题】在 typescript/javascript 的 google.maps.Geocoder().geocode() 上使用全局变量【英文标题】:use global variable inside on google.maps.Geocoder().geocode() in typescript/javascript 【发布时间】:2020-08-16 08:08:07 【问题描述】:

我想在 google.maps.Geocoder().geocode() 中访问和修改我的全局变量,看起来我无法在其中修改以在函数中返回它 全局变量

  public address: any;

这是我的功能

getCoordsCityName(latlng): any 

new google.maps.Geocoder().geocode( 'latLng': latlng , function (results, status) 

  if (status == google.maps.GeocoderStatus.OK) 

    if (results[1]) 
      let country = null, countryCode = null, city = null, cityAlt = null, administrativArea = null;
      let c, lc, component;

      for (let r = 0, rl = results.length; r < rl; r += 1) 
        let result = results[r];
        if (!city && result.types[0] === 'locality') 
          for (c = 0, lc = result.address_components.length; c < lc; c += 1) 
            component = result.address_components[c];
            if (component.types[0] === 'locality') 
              city = component.long_name;
              break;
            
          
         else if (!city && !cityAlt && result.types[0] === 'administrative_area_level_1') 
          for (c = 0, lc = result.address_components.length; c < lc; c += 1) 
            component = result.address_components[c];
            if (component.types[0] === 'administrative_area_level_1') 
              cityAlt = component.long_name;
              break;
            
          
         else if (!country && result.types[0] === 'country') 
          country = result.address_components[0].long_name;
          administrativArea = result.address_components[0].administrative_area_level_1;
          countryCode = result.address_components[0].short_name;
        
        if (city && country) 
          break;
        
      

      this.address = 'Location: ' + country + ', ' + city + ', ' + countryCode;
      console.log('ADDRESS Details: ' + this.address);

    
  
);
return this.address;

它已经在 console.log 上显示了位置,但我不能在页面上使用它

【问题讨论】:

【参考方案1】:

见Arrow Functions

new google.maps.Geocoder().geocode( 'latLng': latlng , function (results, status) )

改成

new google.maps.Geocoder().geocode( 'latLng': latlng , (results, status) => )

【讨论】:

以上是关于在 typescript/javascript 的 google.maps.Geocoder().geocode() 上使用全局变量的主要内容,如果未能解决你的问题,请参考以下文章

如何在 TypeScript / JavaScript 中使用角度材质主题颜色?

在 typescript/javascript 的 google.maps.Geocoder().geocode() 上使用全局变量

ALM:TypeScript / JavaScript 的下一代 IDE

TypeScript(JavaScript)封装一个Toast组件

TypeScript(JavaScript)封装一个Toast组件

TypeScript(JavaScript)封装一个Toast组件