anchor.diff:      to the stored URL if available, or use the default URL.
       There is nothing new about this component or the way you wire it into the router configuration.
       
  -    我们需要一个`LoginComponent`来让用户登录进这个应用。在登录之后，我们跳转到前面保存的URL，如果没有，就跳转到默认URL。
  -      该组件没有什么新内容，我们把它放进路由配置的方式也没什么新意。
  +  我们需要一个`LoginComponent`来让用户登录进这个应用。在登录之后，我们跳转到前面保存的URL，如果没有，就跳转到默认URL。
  +    该组件没有什么新内容，我们把它放进路由配置的方式也没什么新意。
   
     Register a `/login` route in the `login-routing.module.ts` and add the necessary providers to the `providers`
       array. In `app.module.ts`, import the `LoginComponent` and add it to the `AppModule` `declarations`.
  
positive.code: :marked
    ### _CanActivateChild_: guarding child routes
  
    You can also protect child routes with the `CanActivateChild` guard. 
    The `CanActivateChild` guard is similar to the `CanActivate` guard.
    The key difference is that it runs _before_  any child route is activated. 
  
    You protected the admin feature module from unauthorized access. 
    You should also protect child routes _within_ the feature module.
  
    Extend the `AuthGuard` to protect when navigating between the `admin` routes. 
    Open `auth-guard.service.ts` and add the `CanActivateChild` interface to the imported tokens from the router package.
  
    Next, implement the `CanActivateChild` method which takes the same arguments as the `CanActivate` method:
    an `ActivatedRouteSnapshot` and `RouterStateSnapshot`. 
  
negative.code:   Update the `CrisisDetailComponent` to get the crisis from the  `ActivatedRoute.data.crisis` property instead;
    that's where you said it should be when you re-configured the route.
    It will be there when the `CrisisDetailComponent` ask for it.
  
    `CrisisDetailComponent`不应该再去获取这个危机的详情。
    把`CrisisDetailComponent`改成从`ActivatedRoute.data.crisis`属性中获取危机详情，这正是我们重新配置路由的恰当时机。
    当`CrisisDetailComponent`要求取得危机详情时，它就已经在那里了。
  
  +makeExcerpt('src/app/crisis-center/crisis-detail.component.ts (ngOnInit v2)', 'ngOnInit')
  
  