3

Google+ サインイン ボタンを Angular アプリに追加しようとしていますが、コールバック結果の処理を除いて、ほとんどが機能しています。signinCallbackG+ サインインからのコールバックは、次のように呼び出される外部 JS 関数です。

//Handling the Google+ Signin right here
function signinCallback(authResult) {
angular.element($("#btnGooglePlus")).scope().handleGoogleSignin(authResult);
}

back をコントローラーに渡す方法を理解できる唯一の方法は、authResultを介してコントローラー メソッドを呼び出すことでしたelement.scope()handleGoogleSigninは正常に呼び出され、その関数内にはhttp.get次のようなサービス呼び出しがあります。

User.getSocialKey(key).then(function(data) {
    console.log(data);
});

Userはサービスで、getSocialKey次のようになります。

getSocialKey: function(etag) {
    console.log("Hit the social key service with the etag: " + etag);
    return $http({
        url: '/api/user/social',
        method: 'post',
        data: {etag:etag}
    }).then(function(result) {
        console.log("Returning promise from social service");
        return result.data;
    });
},

最初のログ ステートメントは正常にヒットし、その後はヒットしません。リクエストは送信されません。ng-modelここで、属性 (チェックボックスなど)を持つページ上の何かをクリックすると、リクエストが正常に送受信されます。私の質問:何かをクリックするまで Angular サービス呼び出しが中断されるのはなぜですか? なぜすぐに通過しないのですか?

getSocialKey同じことを、動作中のサービス呼び出しに置き換えてみました。問題は関数を呼び出すことに帰着すると思いますangular.element($("#btnGooglePlus")).scope().handleGoogleSignin(authResult);が、よくわかりません。これを前に見た人はいますか?

4

1 に答える 1