我在成功身份验证时有一个登录组件
在login.component.ts中
login() {
this.loading = true;
this.authenticationService.login(this.model.username, this.model.password)
.subscribe(
data => {
this.router.navigate([this.returnUrl]);
},
error => {
this.alertService.error(error);
this.loading = false;
});
}
我在LocalStorage中保存UserObject,然后
我使用
重定向到信息中心页面 this.router.navigate
在My App.component.ts中,我检查UserObject是否在LocalStorage
中 constructor(private router: Router) {
if (localStorage.getItem('currentUser')) {
this.userLoggedIn = true;
const user = JSON.parse(localStorage.getItem('currentUser'));
this.userObject = user['return_object'];
}
}
我在app.component.html中使用userLoggedIn变量有条件地显示标题和左侧导航,但由于某种原因,App.component.ts中的代码没有执行,有人可以指向正确的方向。
答案 0 :(得分:3)
constructor(router:Router) {
router.events.subscribe(event:Event => {
if(event instanceof NavigationStart) {
//you code for checking and navigation
}
});
}
建议是订阅路由事件并基于它来执行操作,因为构造函数只有在组件被创建时才被执行一次直到被销毁。