Angular2 google身份验证,按钮呈现时出现TypeError

时间:2016-03-18 14:02:44

标签: javascript typescript angular google-authentication

长话短说:我正在尝试使用Angular2(Typescript)编写Google身份验证。

当我试图渲染一个按钮时,结果很奇怪。

代码:

    gapi.signin2.render("google-login-btn",
        {
            "onSuccess": (user) => console.log(user),
            "scope": "profile email",
            "theme": "dark"
        }
    )

我收到错误:

TypeError: task is null
patchTimer/clearNative</<()
clearTimeout()
db/t()
db/F[G]/b()
db/F[G]()
db/C[pa]()
<anonymous>

在我的模板中,我有:

    <div class="login-wrapper" style="background-color: white;">
        <p>You need to log in.</p>
        <div id="google-login-btn"></div>
    </div>

并且在代码中调用它的方法是:

ngAfterViewInit() {
    console.log(gapi);
    gapi.signin2.render(
        "google-login-btn",
        {
            "onSuccess": (user) => console.log(user),
            "scope": "profile email",
            "theme": "dark"
        }
    );
}

在我的index.html中当然是:

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

来源在这里

http://pastebin.com/qTKTFaXf

http://pastebin.com/AWyDX8qW

http://pastebin.com/x5ryD6ju

1 个答案:

答案 0 :(得分:0)

您在html元素中使用google-login-btn作为id,但是您尝试使用id google-login-button初始化它。我怀疑您的问题就在那里。虽然,在第3个代码段中,您确实使用了google-login-button .. mmmm。好吧,反正检查一下!