redirectTo
プロパティがAngular 2アプリで機能していません。私は私のapp.routing.ts
で次のルートを持っている:canActivateガードを使用しているときにリダイレクトが機能しない
const routes: Routes = [
{ path: '', redirectTo: '/page/1', pathMatch: 'full' },
{ path: 'page', loadChildren: 'app/modules/page/page.module#PageModule' }
]
export const routing = RouterModule.forRoot(routes);
その後、私のpage.routing.ts
に、私は次のようしている:
const pageRoutes: Routes = [
{ path: ':id', component: PageComponent, canActivate: [LoginGuard] }
];
export const pageRouting = RouterModule.forChild(pageRoutes);
私はそれが第二のためにLoginComponent
を表示するホーム・ページにアクセスするたびに、その後、それは消える。ただし、PageComponent
にリダイレクトする必要があります。
なぜそれが起こっていないのですか?ユーザーが既にログインしている場合、LoginComponent
がロードされているのはなぜですか(たとえ短時間であっても)。
がここにあります私のLoginGuard
:
@Injectable()
export class LoginGuard implements CanActivate {
constructor(private af: AngularFire, private router: Router) {}
canActivate(): Observable<boolean> {
return this.af.auth.map(auth => {
if (auth === null) {
this.router.navigate(['/login']);
return false;
} else {
return true;
}
}).first();
}
}
EDIT:は一時的に、私は、ユーザーがログインしている場合PageComponent
にリダイレクトするLoginComponent
を変更し、私はまだだろう、しかし、なぜredirectTo
機能していません。