$ 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与旧的数据,直到我手动刷新页面。
答
您需要从头部取出令牌,然后饼干等等试试这个
$http.defaults.headers.remove = ['Authorization'];
$cookieStore.remove('globals');
什么特别遗骸数据? – Ladmerc
我有一些ng显示和隐藏的认证用户。登录或注销后,我使用自动控制器中的$ state.go重定向到主状态。但是usernav作用域具有以前的数据。 – Tasos
注销时,您可以清除所有清除usernav中的所有属性或使usernav为空对象 – Ladmerc