Динамически загружать внешний файл javascript из компонента Angular 6 без манипулирования HTML DOM - PullRequest
0 голосов
/ 18 декабря 2018

Я пытаюсь загрузить огромный js-файл только для компонента.это нужно загружать, если и только если пользователь переходит на конкретную ссылку.Я хочу сделать это, не манипулируя dom.

Код, который я пробовал, -

loadAPI: Promise<any>;

constructor() {        
    this.loadAPI = new Promise((resolve) => {
        this.loadScript();
        resolve(true);
    });
}

public loadScript() {        
    var isFound = false;
    var scripts = document.getElementsByTagName("script")
    for (var i = 0; i < scripts.length; ++i) {
        if (scripts[i].getAttribute('src') != null && scripts[i].getAttribute('src').includes("loader")) {
            isFound = true;
        }
    }

    if (!isFound) {
        var dynamicScripts = ["https://widgets.skyscanner.net/widget-server/js/loader.js"];

        for (var i = 0; i < dynamicScripts .length; i++) {
            let node = document.createElement('script');
            node.src = dynamicScripts [i];
            node.type = 'text/javascript';
            node.async = false;
            node.charset = 'utf-8';
            document.getElementsByTagName('head')[0].appendChild(node);
        }

    }
}

, который манипулирует dom и добавляет тег script в раздел head.Кто-то может предложить или сделал это без обновления DOM?

...