anchor.diff:      the value `15` in the path clearly distinguishes the route to "Magneta" from
       a route for some other hero.
   
  -    An [optional-route-parameter](#optional-route-parameter) might be a better choice if we were passing an *optional* value to `HeroDetailComponent`.
  +    An [optional-route-parameter](#optional-route-parameters) might be a better choice if we were passing an *optional* value to `HeroDetailComponent`.
   
   a#navigate
   :marked
  
positive.code: +makeExample('app/crisis-center/crisis-detail-resolve.service.ts', '')
  
  :marked
    We'll take the relevant parts of the `ngOnInit` lifecycle hook in our `CrisisDetailComponent` and moved them into our `CrisisDetailResolve` guard.
    We import the `Crisis` model and `CrisisService` and also the `Router` for navigation from our resolve implementation. We want to be explicit about
    the data we are resolving, so we implement the `Resolve` interface with a type of `Crisis`. This lets us know that what we will resolve will match our
    `Crisis` model. We inject the `CrisisService` and `Router` and implement the `resolve` method that supports a `Promise`, `Observable` or a synchronous
  
negative.code:   doing so greatly complicates the pattern matching required to translate an incoming URL to a named route.
  
    Optional parameters are the ideal vehicle for conveying arbitrarily complex information during navigation.
    Optional parameters aren't involved in pattern matching and afford enormous flexibility of expression.
  
    The Router supports navigation with optional parameters as well as required route parameters.
    We define _optional_ parameters in an *object* after we define our required route parameters.
  