Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript 从Angular 6组件动态加载外部javascript文件,而无需操作HTML DOM_Typescript_Angular6_Lazy Loading_Webpack 4 - Fatal编程技术网

Typescript 从Angular 6组件动态加载外部javascript文件,而无需操作HTML DOM

Typescript 从Angular 6组件动态加载外部javascript文件,而无需操作HTML DOM,typescript,angular6,lazy-loading,webpack-4,Typescript,Angular6,Lazy Loading,Webpack 4,我正试图加载一个巨大的js文件只为一个组件。当且仅当用户导航到特定链接时,才需要加载该链接。我想在不操纵dom的情况下完成它 我试过的代码是- loadAPI: Promise<any>; constructor() { this.loadAPI = new Promise((resolve) => { this.loadScript(); resolve(true); }); } public loadScr

我正试图加载一个巨大的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);
        }

    }
}
loadAPI:Promise;
构造函数(){
this.loadAPI=新承诺((解析)=>{
这个.loadScript();
决心(正确);
});
}
公共加载脚本(){
var isFound=false;
var scripts=document.getElementsByTagName(“脚本”)
对于(变量i=0;i
操作dom并在head部分添加脚本标记。有些人可以建议或已经这样做而不更新dom吗