2016-12-21 43 views
0

我正在使用gapi.signin2.render在Angular中創建自定義Google登錄按鈕。先前在另一個項目中使用相同的代碼,但現在不工作,無法找出原因。 我的代碼看起來像這樣gapi.signin2.render不會在Angular應用程序中調用onsuccess方法

的index.html

<meta name="google-signin-client_id" content="xxx.apps.googleusercontent.com"> 
<script src="https://apis.google.com/js/platform.js"></script> 
... 
<div ng-controller="loginController"> 
    <google-sign-in-button button-id="uniqueid" options="googleOptions"></google-sign-in-button> 
</div> 

loginController.js

function loginController($scope, $rootScope) { 

    $scope.googleOptions = { 
     'width': 200, 
     'height': 50, 
     'theme': 'dark', 
     'onsuccess': success, 
     'onfailure': function() { 
      console.log('failed'); 
     } 
    } 
    console.log($scope.googleOptions); //prints out options 
} 

function success(response) { 
    var AUTH_TOKEN = response.getAuthResponse().id_token; 
    $rootScope.AUTH_TOKEN = AUTH_TOKEN; 
    console.log('Google token successfully retrieved for user ->', $rootScope.AUTH_TOKEN); 
} 

和指令:

function googleSignInButton() { 
    return { 
     scope: { 
      buttonId: '@', 
      options: '&' 
     }, 
     template: '<div></div>', 
     link: function (scope, element, attrs) { 

      var div = element.find('div')[0]; 
      div.id = attrs.buttonId; 
      // console.log(`div.id --> ${div.id}`); 

      console.log(`Google options inside google sign in directive: ${scope.options()}`); 
      console.log(scope.options()); 
      console.log('div.id->',div.id); 
      gapi.signin2.render(div.id, scope.options()); //render a google button, first argument is an id, second options 
      // debugger; 
     } 
    }; 
} 

我發現這個代碼片段從這個post一個而之前,它工作得很好。我不知道爲什麼它現在沒有觸及回調。

回答

相關問題