Следуя этой ссылке я смог загрузить внешние файлы JS следующим образом: < /p>
import { Component, OnInit, Renderer2 } from "@angular/core";
import { ScriptService } from "@app/element-types/_services/script.service";
const scriptPath = 'https://apis.google.com/js/api.js';
declare let gapi: any;
@Component({
selector: 'app',
templateUrl: './app.component.html',
standalone: true
})
export class AppComponent implements OnInit {
constructor(
private renderer: Renderer2,
private scriptService: ScriptService
) {}
ngOnInit() {
const scriptElement = this.scriptService.loadJsScript(this.renderer, scriptPath);
scriptElement.onload = () => {
console.log('Google API Script loaded');
gapi.load('client', 'init');
}
}
}
< /code>
и scriptservice.ts < /p>
import {Inject, Injectable, Renderer2} from "@angular/core";
import { DOCUMENT } from "@angular/common";
@Injectable({
providedIn: 'root'
})
export class ScriptService {
constructor( @Inject(DOCUMENT) private document: Document) {}
public loadJsScript(renderer: Renderer2, src: string): HTMLScriptElement {
const script = renderer.createElement('script');
script.type = 'text/javascript';
script.src = src;
renderer.appendChild(this.document.body, script);
return script;
}
}
< /code>
Пока все хорошо, но я хотел бы изменить код и вместо того, чтобы давать URL, я предоставляю код сценария и запускаю его непосредственно следующим образом: < /p>
const scriptPath = 'https://apis.google.com/js/api.js';
---> change to
const scriptPath = "alert('Hello world');";
< /code>
Ошибка, которую я получаю сейчас: < /p>
Uncaught SyntaxError: expected expression, got '
Подробнее здесь: https://stackoverflow.com/questions/796 ... in-angular