Это о Google Geocoding
@agm/core
просит создать экземпляр google.maps.Geocoder
в вашем сервисе? Вы должны внедрить экземпляр MapsAPILoader
и использовать его обещание загрузки, чтобы сделать отложенный вызов на google.maps.Geocoder()
, после того, как некоторые маги c завершили за занавесом.
Класс
import { MapsAPILoader } from '@agm/core'
export class GeocodingService
{
private geo : any;
constructor(private mapLoader: MapsAPILoader) {}
..
}
Версия a)
constructor(private mapLoader: MapsAPILoader)
{
this.mapLoader.load().then
{
this.geo = new google.maps.Geocoder();
}
}
Версия b)
constructor(private mapLoader: MapsAPILoader)
{
this.getgeo();
}
private getgeo()
{
this.mapLoader.load().then
{
this.geo = new google.maps.Geocoder();
}
}
Версия a ) не работает
core. js: 6014 ОШИБКА
Ошибка: Uncaught (inpromise): ReferenceError: Google не определена в новом GeocodingService (GeocodingService.ts: 53)
Версия б) работает
В чем разница? Для меня а) и б) кажутся эквивалентными?