Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

171
Vistas
¿Cómo uso la 'ventana' global en Angular?

Quiero usar "window["initMapCallback"] para llamar y escuchar "initMapCallback" en otro archivo, pero recibo un error en la ventana de depuración que dice

Pregunta : ¿Cómo uso correctamente esto ya que "window["initMapCallback"] = function()" no se activa?

No capturado (en promesa) TypeError: window.initMapCallback no es una función en initMap ((índice): 35:32)

 <script> function initMap() { window["initMapCallback"](); // error here! } </script> <script src="https://maps.googleapis.com/maps/api/js?key=secret-key&libraries=places&callback=initMap" type="text/javascript" async defer></script>

En el componente donde quiero escucharlo y recibirlo tengo esto

 ngOnInit() { window["initMapCallback"] = function() { console.log('listener entered'); }; }

Si elimino el "()" de la llamada, no hay ningún error, pero aún no puedo llamar o ingresar la función.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Lo que sucede es que el JS externo está listo antes que su aplicación Angular y el componente dado, y la función aún no está configurada. También está muy mal. ¿Por qué no intentar cargar el mapa js dentro de Angular y activar la devolución de llamada allí?

 public loadScript(url: string, callback: () => void): void { if (document.querySelector(`script[src="${url}"]`)) { callback(); return; } const script = document.createElement('script'); script.onload = callback(); script.src = url; document.body.appendChild(script); }

Y luego, cuando necesites el mapa:

 this.loadScript( "https://maps.googleapis.com/maps/api/js?key=secret-key&libraries=places", () => { // some callback, usually subscription in a service } );

La forma de escuchar otro archivo Angular es principalmente con suscripciones y servicios, no debe usar el objeto de ventana para esto.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda