在我们的应用程序中,我们测试用户是否已同意使用条款,然后才能访问请求表单 .
我设置了一个CanActivate警卫来检查它 . 如果它是假的,我会遇到一个奇怪的行为: i can see the request form in a brief time (of a blink!) before being actually redirected to the terms . 如果防护是假的,我该如何防止此行为并直接重定向 .
在激活守卫路线之前,警卫是否应该完成检查?
这是我的路线:
import { Routes } from '@angular/router';
import { RequestFormComponent} from './request-form.component';
import { TermsComponent } from './terms.component';
import { TermsGuard } from './services/terms-guard.service';
export const secretRoutes: Routes = [
{
path: '',
redirectTo: 'form'
},
{
path: 'form',
component: RequestFormComponent,
canActivate: [TermsGuard ]
},
{ path: 'terms', component: TermsComponent },
// otherwise redirect to form
{ path: '**', redirectTo: 'form' }
];
根据同一个问题,有没有办法在这个数组中定义默认路由?为避免写两条单独的行:
{
path: '',
redirectTo: 'form'
},
{
path: 'form',
component: RequestFormComponent,
canActivate: [TermsGuard ]
},