首页 > 解决方案 > 登录角度后如何重定向到主页

问题描述

我不知道为什么我的导航栏也显示在我的登录页面上。第二个是当我登录时,我得到了令牌,我可以保存在我的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>

我的导航栏在路由器插座之前

标签: angular

解决方案


你的主页是什么?您的路由器中没有主页,但您在成功登录时导航到“/”,这会将您再次重定向到此处定义的登录页面:

{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');
}

推荐阅读