$ state.go与重新加载不会更新其他组件

问题描述:

我正在处理angularjs应用程序,我有以下问题。我的一个指令是有关用户详细信息的顶部导航栏。像登录,注册,注销等。

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 }); 

    } 

我什么都试过了我在谷歌和#2发现,但仍保持usernav CONTROLER与旧的数据,直到我手动刷新页面。

+0

什么特别遗骸数据? – Ladmerc

+0

我有一些ng显示和隐藏的认证用户。登录或注销后,我使用自动控制器中的$ state.go重定向到主状态。但是usernav作用域具有以前的数据。 – Tasos

+0

注销时,您可以清除所有清除usernav中的所有属性或使usernav为空对象 – Ladmerc

您需要从头部取出令牌,然后饼干等等试试这个

$http.defaults.headers.remove = ['Authorization']; 
$cookieStore.remove('globals');