У меня есть страница, содержащая кнопку регистрации с помощью кнопки facebook, которую я скрыл с помощью ng-hide="fbLoggedIn"
, и форму ввода, которую я скрыл с помощью ng-show="fbLoggedIn"
Моя цель - зарегистрироваться с помощью кнопки facebook, которая будет скрыта, если для fbLoggedIn
установлено значение true, а ввод формы будет отображаться, если для fbLoggedIn
установлено значение true.
кнопка регистрации facebook ng-click="registerFb()"
выполнить эту функцию
$scope.registerFB = function () {
authService.fbLogin();
$scope.fbLoggedIn = authService.fb_logged_in();
console.log($scope.fbLoggedIn); //this show false even `fb_access_token` not null
}
Вот моя функция authService.fbLogin and authService.fb_logged_in
authService.fbLogin = function () {
var FB = window.FB;
FB.login(function(response) {
console.log(response);
if (response.authResponse) {
sessionService.set('fb_id', response.authResponse.userID);
sessionService.set('fb_access_token', response.authResponse.accessToken);
sessionService.set('fb_expiration_date', new Date(new Date().getTime() + response.authResponse.expiresIn * 1000).toISOString());
//console.log('Welcome! Fetching your information.... ');
FB.api('/me', function(response) {
console.log('Good to see you, ' + response.name + '.');
console.log(response);
});
} else {
console.log('User cancelled login or did not fully authorize.');
//console.log(response);
}
});
};
authService.fb_logged_in = function () {
if(sessionService.get('fb_access_token') != null){
return true;
}else {
return false;
}
};
В другой функции я пытаюсь проверить, не является ли fb_access_token
нулевым, просто чтобы убедиться, что что-то не так с моей логикой, и результат true
.
С приведенным выше отладчиком я могу сказать, что $scope.fbLoggedIn = authService.fb_logged_in();
выполняется до завершения authService.fbLogin();
.
Итак, как я могу выполнить $scope.fbLoggedIn = authService.fb_logged_in();
после завершения authService.fbLogin();
? может быть, как достичь моей цели?