在我们的应用程序中,我们测试用户是否同意使用条款,然后才能访问请求表单。
我设置了一个CanActivate警卫来检查它。如果它是假的,我会遇到一个奇怪的行为:我可以在短暂的时间内(眨眼!)看到请求表单,然后才真正重定向到术语。如果防护是假的,我该如何防止此行为并直接重定向。
在启动防护路线之前,警卫是否应该完成检查?
这是我的路线:
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 ]
},