title: canActivate Dependant on Parent Route Resolve
body: <p>I have routes setup like so:</p>
  
  <pre><code>export const APP_ROUTES: Routes = [
      {
          path: '',
          resolve: {
              user: CurrentUserResolver
          },
          children: [
              {
                  path: ':sectionKey',
                  canActivate: [SectionAccessGuard],
                  children: [
                      {
                          path: 'dashboard',
                          component: DashboardComponent
                      }
                  ]
              }
          ]
      }
  ]
  </code></pre>
  
  <p>Where the parent route will retrieve the user via a HTTP call, and I'd like my sub-route <code>:sectionKey</code> to only be activated if the current user has access to it.  The issue is, it appears my canActivate <code>SectionAccessGuard</code> is called prior to the snapshot being fully populated:</p>
  
  <pre><code>@Injectable()
  export default class SectionAccessGuard implements CanActivate {
      canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
          console.log(route.data);
          console.log(route);
          return true;
      }
  }
  </code></pre>
  
  <p>In the console, the first entry will have nothing; however, the 2nd entry will eventually have the <code>user</code> field populated.</p>
  
  <p>I know the <code>canActivate</code> method can return an <code>Observable&lt;boolean&gt;</code> as well, but I don't see any hooks on how to wait until the resolve completes.</p>
  
  <p>What am I missing here?  I feel like this should be pretty straight forward.  I'm currently using angular v4.0.0-rc.2</p>