Angular2 CanActivate Guard在重定向之前显示页面

时间:2016-12-05 18:55:56

标签: angular angular2-routing

在我们的应用程序中,我们测试用户是否同意使用条款,然后才能访问请求表单。

我设置了一个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 ]
  },

0 个答案:

没有答案