如何在angular2路由器中添加条件

如何在angular2路由器中添加条件,angular,angular2-routing,Angular,Angular2 Routing,我的路线是:- const appRoutes: Routes = [ { path: 'alert/:id', component: AlertDetailComponent }, { path: 'alerts', component: AlertsComponent }, { path: 'dashboard', component: EriskDashboardComponent }, { path: '', redirectTo: '/dashboard', pathMatch:

我的路线是:-

const appRoutes: Routes = [
{ path: 'alert/:id', component: AlertDetailComponent },
{ path: 'alerts', component: AlertsComponent },
{ path: 'dashboard', component: EriskDashboardComponent },  
{ path: '', redirectTo: '/dashboard', pathMatch: 'full' },
{ path: 'login', component: LoginComponent }, 
{ path: 'logout', component: LogoutComponent },  
];
我希望如果本地存储包含
令牌\u id
,则/login重定向到EriskDashboardComponent

在您的
'login'
路径中添加一个防护:

{path:'login',component:LoginComponent,canActivate:[CheckToken]}
在防护内部(在我的示例中名为
CheckToken
),检查本地存储并重定向用户:

//check-token.service.ts
从“@angular/core”导入{Injectable};
从'@angular/Router'导入{CanActivate,Router};
@可注射()
导出类CheckToken实现CanActivate{
构造函数(专用路由器:路由器){
canActivate(){
const myToken=…;//检查本地存储
如果(myToken){
this.router.navigate(['/dashboard']);
}
}
}
在您的
'login'
路线中添加一个守卫:

{path:'login',component:LoginComponent,canActivate:[CheckToken]}
在防护内部(在我的示例中名为
CheckToken
),检查本地存储并重定向用户:

//check-token.service.ts
从“@angular/core”导入{Injectable};
从'@angular/Router'导入{CanActivate,Router};
@可注射()
导出类CheckToken实现CanActivate{
构造函数(专用路由器:路由器){
canActivate(){
const myToken=…;//检查本地存储
如果(myToken){
this.router.navigate(['/dashboard']);
}
}
}

您可以向
登录路径添加一个防护。在防护内部,检查本地存储并适当重定向。检查文档,他们有代码示例和所有内容。您可以解释一下吗?您可以检查防护中的条件,然后强制导航到另一个路径
此路由器。导航(…)
我已经发布了一个完整的答案。你可以在
登录
路由中添加一个守卫。在守卫内部,检查本地存储并适当重定向。检查文档,他们有代码示例和所有内容。你能解释一下吗?你可以检查守卫中的条件,然后强制导航到另一个路由
this.router。导航(…)
我发布了一个完整的答案。代码未运行它给出了错误类“CheckToken”错误地实现了接口“CanActivate”。属性“CanActivate”的类型不兼容。我的代码不应该逐字运行…我只是提供了一个蓝图。请查看文档以获取完整的工作示例(提示:canActivate方法必须返回某些内容)。代码未运行它给出的错误类“CheckToken”错误地实现了接口“canActivate”。属性“canActivate”的类型不兼容。我的代码不应该逐字运行…我只是将其作为蓝图提供。请查看文档以获取完整的工作示例(提示:canActivate方法必须返回某些内容)。