2017-05-16 91 views
0

我正在開發一個應用程序網站,現在我遇到了麻煩的路線。 我創建了一個AuthGuard,如果有用戶登錄或不在,就會返回。那麼,當我想在兩種路線的分裂問題開始:Angular2 authguard routes

-Routes這裏我只能去,如果沒有登錄IM -Routes這裏我只能去,如果IM登錄

。所以,如果即時通訊登錄我想要的是,我不能去一些路線。

這是我的路由器:

{ path: 'app', 
component: AppComponent, 
children: [ 
    { path: 'login', component: LoginComponent }, 
    { path: 'inicio', component: ContentHomeComponent }, 
    { path: 'register', component: RegisterFormComponent}, 
    { path: 'apuestas', component: ContentBetComponent, canActivate: [AuthGuard]} 
]}, 
    { path: '**', redirectTo:'/app/inicio',pathMatch: 'full' } 

什麼,我現在是,我只能去「apuestas」如果我登錄,但我想兩個分開我是怎麼說的了。我希望只有在您未登錄的情況下才能訪問登錄,inicio和註冊,如果您已註冊,則只能訪問其他登錄。

回答

0

如果我理解正確的話,你可以添加另一NotAuthenticatedGuard如果用戶登錄,返回上canActivatefalse

{ path: 'app', 
    component: AppComponent, 
    children: [ 
    { path: 'login', component: LoginComponent, canActivate: [ NotAuthGuard ] }, 
    { path: 'inicio', component: ContentHomeComponent, canActivate: [ NotAuthGuard ] }, 
    { path: 'register', component: RegisterFormComponent, canActivate: [ NotAuthGuard ] }, 
    { path: 'apuestas', component: ContentBetComponent, canActivate: [AuthGuard]} 
]}, 
{ path: '**', redirectTo:'/app/inicio',pathMatch: 'full' } 

的命名是你的,當然。

+0

但是沒有更好的方法嗎?例如使用父母和孩子或類似的東西。我不知道如果創建另一個服務來檢查它,它是有效的 – Tibo