私はng-hide="fbLoggedIn"
に隠されたセットのFacebookのボタンに登録し、真のフォーム入力にfbLoggedIn
セットが表示されます場合、私は私の目標は、Facebookのボタンに登録されng-show="fbLoggedIn"
AngularJS関数の終了後に関数を実行する方法は?
に隠された設定の入力が非表示になります形成含まれているいくつかのページを持っています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
がちょうどと間違っ必ず何か作るために、nullでないかどうかをチェックしてみてください私の論理は、結果はtrue
です。
上記のデバッグを使用すると、はauthService.fbLogin();
より前に実行されます。
だから私は authService.fbLogin();
の後に実行することができますか?多分私の目標を達成する方法?
のベストプラクティスの問題を解決するだろう。 return inと同様に、defer.resolve()を呼び出すと、defer = $ qとなります。タスクを実行するには、the.then()メソッドの最初のパラメータを使用します。 –
@TirthrajBarotあなたはいくつかのコード例で答えたいですか?多分私のコードで? –
そして、$ rootScopeを使ってもできると思います...ログイン機能で$ rootScope.fb_isLogin = trueを設定し、このrootScope変数をng-hideに入れてください –