angularjs - 如何在 Angular 2 Component 中访问全局变量

标签 angularjs node.js asp.net-mvc-5 typescript google-api

我想从 typescript 中的 angular 2 模块访问 google api 库。 怎么做。 当我尝试访问 (gapi) 时,我得到了未定义的信息。是否有任何 NPM 模块可以作为 angular 2 中的 typescript 库使用,或者我必须使用 js 文件。

模块代码和库引用如下:

 <script src="https://apis.google.com/js/client.js?onload=handleClientLoad"></script>

.

    @Component({

    selector: "main-app",
    template: "{{title}}",
    providers: [HTTP_PROVIDERS, AuthService]

})
export class AppComponent implements OnInit {
    public title: string = '';
    constructor(private _authService: AuthService) {
        var gapi: any;
        console.log(gapi); // undefined
    }
    ngOnInit() {

        this._authService.getAuthSettings().subscribe((set: AppSetting) => {
            this.title = set.Scopes;
        });
    }

};

最佳答案

你的代码中有:

    var gapi: any;
    console.log(gapi); // undefined

var gapi 在运行时创建一个新的局部变量。您不想创建局部变量。你想声明一个全局存在。创建一个 globals.d.ts 文件并向其中添加以下内容:

declare var gapi:any;

更多

JavaScript 到 TypeScript 迁移指南:https://basarat.gitbooks.io/typescript/content/docs/types/migrating.html

关于angularjs - 如何在 Angular 2 Component 中访问全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36272279/

相关文章:

javascript - 自动包含所需的 API 合约调用

javascript - 使用 Socket.Io 监听器获取循环

c# - 在 ASP.Net MVC 中删除记录的安全方法

javascript - 如何在 $http GET 方法中设置参数以从下拉 Angularjs 发送数据

javascript - Angular .js 错误 : Duplicates in a repeater are not allowed - Track by index doesn't work as intended

javascript - 同时添加两个元素

node.js - 无法使用 Node.js 在 Firebase 云存储中保存自定义元数据

vb.net - MVC 5 - 从 IdentityDbContext 和 IdentityUser 继承时,EF 6.1 脚手架失败

c# - 自定义 ASP.NET MVC 表单例份验证

c# - 将多维数组从 ajax 传递到 ASP.NET MVC