Descripcion del problema
Cuando intento inyectar GoogleMapsAPIWrapper en uno de mis componentes, tengo que proporcionar el Wrapper a mi NgModule o mi NgComponent. Esto no parece un comportamiento esperado.
Si se trata de un servicio de Angular 4, debería poder importar AgmCoreModule y no tener que usar la matriz de proveedores en su módulo.
Pasos para reproducir y una demostración mínima del problema.
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
constructor(googleMapsAPIWrapper: GoogleMapsAPIWrapper) { //
}
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
FormsModule,
AgmCoreModule.forRoot()
],
providers: [ ], //wrong
bootstrap: [AppComponent]
})
export class AppModule { }
Lo anterior da un error.
Necesitas cambiarte a
providers: [ GoogleMapsAPIWrapper ],
bootstrap: [AppComponent]
Comportamiento esperado / deseado
No debería tener que proporcionar GoogleMapsAPIWrapper
a su módulo.
versión angular2 y angular-google-maps
angular: 4.1.3
agm / core: 1.0.0-beta.0
Otra información
GoogleMapsAPIWraper se crea cuando se crea una instancia de agm-map. Esto es completamente intencional. Mantenemos una instancia por mapa. Si desea obtener la instancia del mapa, puede crear un componente personalizado e inyectar GoogleMapsAPIWrapper a través del constructor. Así que estoy cerrando esto.
@SebastianM ¿Tienes un ejemplo de lo que
@SebastianM parece que no funciona ... de lo contrario, me falta algo ... ¿pueden ayudarme, por favor?
La promesa no se resuelve, la línea 25 no se ejecuta en app.component.ts en el siguiente repositorio. (no hay error en la consola)
https://stackblitz.com/edit/agm-google-maps-api-wrapper-not-working
Comentario más útil
@SebastianM parece que no funciona ... de lo contrario, me falta algo ... ¿pueden ayudarme, por favor?
La promesa no se resuelve, la línea 25 no se ejecuta en app.component.ts en el siguiente repositorio. (no hay error en la consola)
https://stackblitz.com/edit/agm-google-maps-api-wrapper-not-working