angular - 登录角度后如何重定向到主页
问题描述
我不知道为什么我的导航栏也显示在我的登录页面上。第二个是当我登录时,我得到了令牌,我可以保存在我的localstorage
但仍然没有将我重定向到第一页,现在我要写我所做的,这是我的module.ts。
RouterModule.forRoot([
{path:'',component:LoginComponent},
{path:'app-events',component:EventsComponent},
{path:'app-turbine-comparison',component:TurbineComparisonComponent}
])
这是我的登录功能:
signIn(credntials){
this.authaervice.login(credntials)
.subscribe(result=>{
if(result){
localStorage.setItem('token',result.toString());
this.router.navigate(['/']);
}
else
this.invalidLogin=true;
})
}
我的 app.html:
<nav>my nabvar stuff</nav>
<router-outlet></router-outlet>
我的导航栏在路由器插座之前
解决方案
你的主页是什么?您的路由器中没有主页,但您在成功登录时导航到“/”,这会将您再次重定向到此处定义的登录页面:
{path:'',component:LoginComponent},
您的导航栏显示在您的登录页面上,因为它位于您的路由器插座之外,因此它将显示在每个页面上。在您的应用程序组件中,您可以简单地从本地存储中读取令牌,并且仅在存在有效令牌时才呈现导航组件:
<nav *ngIf="token">my nabvar stuff</nav>
<router-outlet></router-outlet>
在你的 app.component.ts ->
token: string;
ngOnInit(){
this.token = this.readToken();
}
readToken(): string {
return localStorage.getItem('token');
}
推荐阅读
- c++ - 在 C++ 中使用 std::cin 将 char 传递给 int
- reactjs - 在 Github.io 上看不到任何组件
- python - 针对用户登录绘制时间序列时出现问题?
- java - 如何使用viewpager一次获得一项垂直滚动
- vue.js - 无法将 CSS 加载到 Vue cli 项目中。Mimetype 始终为 html
- java - 如何在春季百里香中将值重新分配给全局定义的变量
- php - Codeigniter 会话数据或数据库查询?
- python - 如何将 LDAP AD 组映射到 python flask AppBuilder 中的用户角色
- c# - 触发集合中某个元素的 PropertyChanged
- javascript - rellax.js 无法指定区域吗?