$ state.go with reload不会更新其他组件

时间:2016-12-16 12:13:18

标签: angularjs angular-ui-router

我正在开发一个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 });

  }

我尝试了在Google和Stackoverflow中找到的所有内容,但是在我手动刷新页面之前,它仍然使用旧数据保存usernav控制器。

1 个答案:

答案 0 :(得分:0)

您需要从标头中移除令牌,然后删除Cookie,请尝试使用

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