Angular 8 - загрузить скрипты внутри Angular компонента html div - PullRequest
0 голосов
/ 05 апреля 2020

У меня есть два нижеприведенных скрипта, которые нужно вставить в специфицированный c div на моей странице компонента. html. Я пытался использовать DOM Sanitizer без удачи. Я также попытался создать теги сценария в ngAfterViewInit, как предложено здесь: angular2: включая сценарии третьих сторон js в компоненте .

<div id="uniqueId">
    <script src='https://script.js' type='text/javascript'></script>

    <script type='text/javascript'>
      initializeFunction('123456789');
    </script>

</div>

1 Ответ

0 голосов
/ 05 апреля 2020

Удалось заставить его работать благодаря этому сообщению: http://blog.davidjs.com/2018/09/insert-script-tags-in-angular-components/

В моем случае проблема заключалась в том, что для второго скрипта необходимо было загрузить первый скрипт перед выполнением.

constructor(
    private renderer: Renderer2,
    @Inject(DOCUMENT) private _document
  ) {}


 ngAfterViewInit(){
    var s = this.renderer.createElement("script");
    s.onload = this.loadNextScript.bind(this);
    s.type = "text/javascript";
    s.src = "https://script.js";

    this.renderer.appendChild(this._document.body, s);
  }

  loadNextScript() {
    const s = this.renderer.createElement('script');
    s.text = `
    initializeFunction('1234566');
 `
    this.renderer.appendChild(this._document.body, s);
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...