title: Angular2 CanActivate Guard shows page before redirecting
body: <p>In our app, we test if the user has agreed the terms of use before giving him access to the request form.</p>
  
  <p>I set a CanActivate guard checking it. In case it's false, i encounter a strange behavior: <strong>i can see the request form in a brief time (of a blink!) before being actually redirected to the terms</strong>. How can I prevent this behavior and DIRECTLY redirect if the guard is false. </p>
  
  <p>Aren't the guards supposed to accomplish their check before activating the guarded route?</p>
  
  <p>Here is my routing:</p>
  
  <pre><code>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' }
  ];
  </code></pre>
  
  <p>As per the same question, is there any way to define a default route in this array? To avoid writing two separate lines:</p>
  
  <pre><code>  {
      path: '',
      redirectTo: 'form'
    },
    {
      path: 'form',
      component: RequestFormComponent,
      canActivate: [TermsGuard ]
    },
  </code></pre>