2017-05-16 13 views
0

私はアプリケーションウェブを開発していますが、今はルートに問題があります。 ユーザーがログインしているかどうかを返すAuthGuardを作成しました。 。私はルートの2種類に分割したい場合さて、問題が開始されます。イムはログインしていない場合、私はのみ行くことができる私は行くことができます -Routesをイムはログインしている場合Angular2 authguard routes

-Routes

だから私が欲しいものを私がログインしている場合、私はいくつかのルートに行くことはできません。

これは私のルータです:

{ 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

私が正しく理解していれば、あなただけのユーザーがログインしている場合canActivatefalseを返す別のNotAuthenticatedGuardを追加することができます。

{ 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