当前,如果我以管理员身份登录,则导航组件上有一个admin部分。如果我注销并以非管理员用户身份登录,则在我的导航栏中仍然可以看到admin部分。如果我进行硬刷新或Location.reload()
,它就会消失。我宁愿重新加载side-nav组件而不刷新页面。我该如何重新加载除login()
和logout()
函数所在的组件之外的其他组件?
topnav.component.ts
@Component({
selector: "app-top-nav"
//...
})
//...
login() {
//do login stuff
},
error => {
//do error stuff
},
() => {
this.router.navigate(["/dashboard"]);
});
}
logout() {
//do logout stuff...
this.router.navigate(["/home"]);
}
topnav.component.html
<form *ngIf="!loggedIn()" #loginForm="ngForm" class="navbar-form navbar-right" (ngSubmit)="login()">
//login form
</form>
<a (click)="logout()"><i class="fa fa-sign-out"></i> Logout</a> //only present when logged in
sidenav.component.ts
@Component({
selector: "app-side-nav"
//...
})
export class SideNavComponent implements OnInit {
//...
}
sidenav.component.html
//...
<ul class='nav navbar-nav' *ngIf="user.userRoleId == UserRoles.Admin">
答案 0 :(得分:0)
我不知道您的user
var是什么样的,如果它的组件绑定,那就是您的问题。您希望将其移至服务并在登录时进行更新/设置。