javascript - Angular 7 ¿cómo incluir un script JS en línea en un componente?
Me gustaría instalar la biblioteca places.js en mi proyecto Angular 7, pero tengo un problema. He incluido el siguiente script en mi archivo 'index.html'
<script src="https://cdn.jsdelivr.net/npm/[email "></script>
<script>
var placesAutocomplete = places({
appId: 'myAppId',
apiKey: 'myApiKey',
container: document.querySelector('#addressInput')
});
</script>
pero solo funciona cuando tengo
<input type="search" id="address-input" placeholder="Where are we going?" />
en mi 'index.html'. He intentado incluir este input en mi componente, pero no funciona y tengo un error
[email :1 Uncaught Error: Algolia Places: 'container' must point to an <input> element.
¿Es posible adjuntar este script y hacerlo funcionar? En la documentación no hay nada sobre TypeScript. También he intentado hacer npm install y
import * from 'places.js'
pero tengo el mismo problema. ¿Alguien podría ayudar?
Respuesta #1
Mejor usarlo incrustado en un Componente de Angular:
import { Component, OnInit } from "@angular/core";
import places from "places.js";
@Component({
selector: "app-root",
templateUrl: "./app.component.html",
styleUrls: ["./app.component.css"]
})
export class AppComponent implements OnInit {
title = "my-app";
ngOnInit(): void {
const placesAutocomplete = places({
appId: "appId",
apiKey: "appKey",
container: document.querySelector("#address-input")
});
}
}
también deberías colocar esto en tu polyfill.js para que funcione:
(window as any).process = {
env: { DEBUG: undefined }
};
(window as any).global = window;
Respuesta #2
Intenté tu manera pero no tuve éxito.
Necesitas descargar el archivo places.js y ponerlo en una carpeta de scripts.
Actualiza el archivo angular.json en builder > scripts
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
...
"assets": [...],
"styles": [...],
"scripts": [
"script/places.js"
]
},
