在Angular中,如何访问在iife中初始化的全局变量?

时间:2019-12-07 16:43:42

标签: javascript angular typescript

我对Angular来说还很陌生,所以请耐心等待。我正在将一个应用程序从Asp.net MVC5升级到Angular,此应用程序要做的一件事是通过从该第三方下载javascript文件以建立凭据和通过对象进行通信来连接至第三方系统。看起来该对象是一个实例,因此,一旦js文件加载,该对象就会被初始化。我想出了一种方法,可以通过将脚本添加到文档的开头来在组件中动态加载脚本,我遇到的问题是,一旦执行了iife,如何在我的组件中保留该对象。我知道外部文件正在加载并且对象已初始化,因为我可以在浏览器的开发工具中看到它。我无法从npm上获得该JavaScript文件,也无法将其添加到资产文件夹中,不幸的是,这是我到目前为止找到的全部内容。

1 个答案:

答案 0 :(得分:0)

您可以在组件内部创建一个变量,然后修改iife以将变量与要存储到其的数据一起设置。

export class MyComponent{

    MyNewVariable: string; //or make it whatever type you need

    constructor(){}

    (function(){
        //do stuff
        this.MyNewVariable = data; //data being whatever you want to store in the var
    })();
}

完成后,您可以运行以某种方式使用数据的另一个函数。