anchor.diff:      Put this data access logic in the `ngOnInit` method rather than inside the constructor to improve the component's testability.
       Angular calls the `ngOnInit` method shortly after creating an instance of the `HeroDetailComponent`
       so the hero will be retrieved in time to use it.
  +    
  +    把数据访问逻辑放进`ngOnInit`方法中，而不是构造函数中可以提升组件的可测试性。
  +    Angular会在创建完`HeroDetailComponent`的实例之后调用`ngOnInit`方法，因此该英雄会在即将使用时接收到。
         
       Learn more about the `ngOnInit` method and other component lifecycle hooks in the [Lifecycle Hooks](lifecycle-hooks.html) guide.
  +    
  +    要了解关于`ngOnInit`方法和其它组件生命周期钩子的更多知识，参见[生命周期钩子](lifecycle-hooks.html)一章。
   
   +makeExcerpt('src/app/heroes/hero-detail.component.ts (ngOnInit)', 'ngOnInit')
   
   :marked
     Since the parameters are provided as an `Observable`, you use the `switchMap` operator to
     provide them for the `id` parameter by name and tell the `HeroService` to fetch the hero with that `id`.
  +  
  +  由于参数是作为`Observable`提供的，所以我们得用`switchMap`操作符来根据名字取得`id`参数，并告诉`HeroService`来获取带有那个`id`的英雄。
   
     The `switchMap` operator allows you to perform an action with the current value of the `Observable`,
     and map it to a new `Observable`. As with many `rxjs` operators, `switchMap` handles
  
positive.code:   as you do when navigating to the `HeroDetailComponent` in order to view the hero with *id*15:
    
    如果想导航到`HeroDetailComponent`以对id为15的英雄进行查看并编辑，就要在路由的URL中使用[*路由参数*](#route-parameters)来指定*必要*参数值。
    
  code-example(format="nocode").
    localhost:3000/hero/15
  
  
negative.code: 
  +makeExcerpt('src/app/admin/admin-routing.module.1.ts (admin routing)', 'admin-routes')
  
  a#component-less-route
  :marked
    ### Component-less route: grouping routes without a component
    
  