2016-12-16 5 views
1

私はangularjsアプリケーションで作業していますが、次の問題があります。私の指示の1つは、ユーザーの詳細が表示されているトップナビゲーションバーです。ログイン、登録、ログアウトなど

function UserNavDirective() { 
    var ddo = { 
     templateUrl: 'app/views/common/usernav.html', 
     scope: { 

     }, 
     controller: UserNavDirectiveController, 
     controllerAs: 'usernav', 
     bindToController: true 
    }; 

    return ddo; 
} 

UserNavDirectiveController.$inject = ['AuthFactoryService', '$cookieStore']; 

function UserNavDirectiveController(AuthFactoryService, $cookieStore) { 
    var usernav = this; 

    usernav.loggedIn = AuthFactoryService.checkIfLoggedIn(); 
    usernav.username = $cookieStore.get('username'); 
    usernav.logout = AuthFactoryService.logout(); 


} 

私はログアウトとログインのためのサービスを持っています。小さい方のログアウトを投稿します。

authService.logout = function() { 

     $cookieStore.remove('token'); 
     $state.go('home', {}, { reload: true }); 

    } 

私はGoogleとstackoverflowので見つかったすべてのものを試してみましたが、私は手動でページを更新するまで、まだそれは、古いデータとusernavののcontrolerを保持します。

+0

どのデータを試してみてください? – Ladmerc

+0

私は認証されたユーザーのためのng-showとhideをいくつか持っています。ログインまたはログアウトの後、私は$ state.goを自動コントローラから使用してホーム状態にリダイレクトします。しかし、usernavスコープには以前のデータがあります。 – Tasos

+0

をログアウトすると、usernavのすべてのプロパティを1つずつクリアするか、usernavを空のオブジェクトにするか – Ladmerc

答えて

0

あなたは、ヘッダーからトークンを削除する必要があり、その後、クッキーはとても特別な遺跡で、この

$http.defaults.headers.remove = ['Authorization']; 
$cookieStore.remove('globals'); 
関連する問題