如何在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方法必须返回某些内容)。