在角度service.ts中使用谷歌的api.js

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在角度service.ts中使用谷歌的api.js相关的知识,希望对你有一定的参考价值。

我正在尝试为我的Angular 2应用实施简单的Google身份验证。有没有办法在service.ts中的gapi中实现google的https://apis.google.com/js/api.js脚本?

当我尝试提供服务时出现编译错误。但是当我键入一些导致节点刷新的任意空格时,它会提供一个工作站点。

我看到在api.js脚本中存在var gapi,但有没有办法将该变量提取到ts中。

import {Injectable} from '@angular/core';
import * as jQuery from 'jquery';


@Injectable()
export class AuthService {
  testFunction() {
    jQuery.getScript("https://apis.google.com/js/api.js", handleClientLoad);
    var CLIENT_ID = 'SECRET';
    var DISCOVERY_DOCS = ["https://www.googleapis.com/discovery/v1/apis/youtube/v3/rest"];

    var SCOPES = 'https://www.googleapis.com/auth/youtube.readonly';
    var authorizeButton = document.getElementById('authorize-button');
    var signoutButton = document.getElementById('signout-button');
    var signedInMenu = document.getElementById('signed-in-menu');
    /**
     *  On load, called to load the auth2 library and API client library.
     */
    function handleClientLoad() {
      gapi.load('client:auth2', initClient);
    }

}...more code that also calls gapi...
答案

在类的顶部声明gapi变量

declare var gapi:any;

以上是关于在角度service.ts中使用谷歌的api.js的主要内容,如果未能解决你的问题,请参考以下文章

来自谷歌的开发心得:所有SQL和代码,都没必要藏着掖着

从角度5中的服务功能返回后,服务的复杂对象从组件更改

谷歌的reCaptcha在中国可以用么

将数据从父级传递给子角度4

如何在经典 sinatra 应用程序中配置omniauth 使用memcached 作为谷歌的后备存储?

要求用户在提交表单之前点击谷歌的新验证码