anchor.diff:  
     It's a different story if we improperly import `CoreModule` into a lazy loaded module such as `HeroModule` (try it).
   
  -  如果我们错误的把`CoreModule`导入了一个惰性加载模块（比如`HeroModule`）中，那就不一样了。
  +  如果我们错误的把`CoreModule`导入了一个惰性加载模块（例如`HeroModule`）中，那就不一样了。
   
     Angular creates a lazy loaded module with its own injector, a _child_ of the root injector.
     `@SkipSelf` causes Angular to look for a `CoreModule` in the parent injector which this time is the root injector.
     Of course it finds the instance imported by the root `AppModule`.
     Now `parentModule` exists and the constructor throws the error.
   
  -  Angular创建一个惰性加载模块，它具有自己的注入器，它是根注入器的*子注入器*。
  -  `@SkipSelf`让Angular在其父注入器中查找`CoreModule`，这次，它的父注入器却是根注入器了（而上次父注入器是空）。
  +  Angular 创建一个惰性加载模块，它具有自己的注入器，它是根注入器的*子注入器*。
  +  `@SkipSelf`让 Angular 在其父注入器中查找`CoreModule`，这次，它的父注入器却是根注入器了（而上次父注入器是空）。
     当然，这次它找到了由根模块`AppModule`导入的实例。
     该构造函数检测到存在`parentModule`，于是抛出一个错误。
   
  
positive.code:   In the next section, we carve the contact functionality out of the root module
    and into a dedicated feature module.
  
    在下一节，我们从根模块中把与联系人有关的功能切分到专门的特性模块中。
  
    <a id="contact-module-v1"></a>
    ### Make _Contact_ a feature module
  
negative.code: :marked
    The app displays "Miss Marple" as the user instead of the default "Sherlock Holmes".
  
    该应用不再显示默认的 “Sherlock Holmes”，而是用 “Miss Marple” 作为用户名称。
  
  .alert.is-important
    :marked
  