title: Angular 2 CanActivate is called twice
body: <p>I am faced with a problem with route guards with Angular.</p>
  
  <p>My CanActivate guard is called twice when navigating to a page that is not permitted because I'm not logged in.</p>
  
  <p>I have 1 root module and provided there my CanActivate guard and other services.</p>
  
  <p>Thank you in advance!</p>
  
  <p>Here is my router:</p>
  
  <pre><code>const appRoutes: Routes = [
      {
          path: "",            
          pathMatch: "full",
          redirectTo: "/meal-list",
      },
      {
          path: "login",
          component: LoginComponent,
      },
      {
          path: "meal-list",
          component: MealListComponent,
          canActivate: [AuthActivateGuard],
      }  
  ];
  
  
  export const routing: ModuleWithProviders = RouterModule.forRoot(appRoutes, {useHash: true});
  </code></pre>
  
  <p>and guard:</p>
  
  <pre><code>@Injectable()
  export class AuthActivateGuard implements CanActivate {
  
  
    constructor(private authService: AuthService,
                private router: Router) {
      console.log("guard created");
    }
  
    canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable&lt;boolean&gt;|boolean {
      if (!this.authService.authenticated) {
        return this.authService.checkLogged().map(res =&gt; {
          this.authService.authenticated = true;
          return true;
        }).catch(()=&gt; {
          this.authService.authenticated = false;
          this.router.navigate(["login"]);            
          return Observable.of(false);
        });
      }
      return true;
    }
  }
  </code></pre>