Angular2 Google 符号

Angular2 Google sign

您好,我正在尝试使用 Type Script 添加 login/logout to/from google by their guide

在Index.html

 <script src="https://apis.google.com/js/platform.js"></script>

在LoginComponent.ts

declare const gapi: any;

ngAfterViewInit() {
  gapi.signin2.render(
  this.googleLoginButtonId,
  {"onSuccess": this.onGoogleLoginSuccess,"scope": "profile",
    "theme": "dark"},function (error) {
   console.log(JSON.stringify(error, undefined, 2));
  });

}

      onGoogleLoginSuccess = (loggedInUser) => {
var profile = loggedInUser.getBasicProfile();
       this.auth.LoginSuccess(loggedInUser);
      }

这对我来说很好,但是当我想在登录成功时将视图路由到个人资料页面时,我遇到了这样的错误:

Uncaught TypeError: Cannot read property 'style' of null
    at G_ (cb=gapi.loaded_0:282)
    at H_.<anonymous> (cb=gapi.loaded_0:285)
    at Function.<anonymous> (cb=gapi.loaded_0:155)
    at MessagePort.c.port1.onmessage (cb=gapi.loaded_0:73)

而且我还希望整个登录过程作为服务或模块重用。我如何创建整个 Google 登录操作作为模块或服务

你能给我一个代码片段或工作演示或建议我任何 angular2 模块来实现这个。

我也尝试过 angular2SocialLogin 模块,但是当我在 git issue

中提到的一些错误时,它也显示错误

请帮我摆脱困境。在此先感谢..

登录成功后隐藏登录按钮即可修复错误。

 <div id="g-signin2" style="display: none;"></div>

参考this answer

我也遵循了这个plunkr example并且和我一起工作得很好