anchor.diff:  
   //- Dart limitation: the provide function isn't const so it cannot be used in an annotation.
   - var __andProvideFn = _docsFor == 'dart' ? '' : 'and <i>provide</i> object literal';
  +- var __andProvideFn = _docsFor == 'dart' ? '' : '和 <i>provide</i> 对象';
   #provide
   :marked
  -  ### The *Provider* class !{__andProvideFn}
  -
  +  ### *Provider* 类!{__andProvideFn}
   :marked
     We wrote the `providers` #{_array} like this:
   
  +  我们像下面一样写`providers`数组：
  +
   +makeExample('dependency-injection/ts/app/providers.component.ts','providers-1')
   
   :marked
     This is actually a short-hand expression for a provider registration using the _provider_ object literal.
  +
  +  这实际上是使用_provider_对象常量注册供应商的缩写表达式。
   
   +makeExample('dependency-injection/ts/app/providers.component.ts','providers-3a')
   
  
positive.code:   which makes this object play the logger role.
  
    于是我们可以通过`useValue`选项来注册一个供应商，它会让这个对象直接扮演logger的角色。
  +makeExample('dependency-injection/ts/app/providers.component.ts','providers-7')(format=".")
  
  - var stylePattern = { otl: /(useValue: \w*)/gm };
  +makeExample('dependency-injection/ts/app/providers.component.ts','providers-7', '', stylePattern)(format=".")
  
negative.code:   然后，我们将学习在Angular应用中该[如何使用它](#angular-di)。
  
    - [Why dependency injection?](#why-dependency-injection)
    - [为什么依赖注入？](#why-dependency-injection)
    - [Angular dependency injection](#angular-dependency-injection)
    - [Angular依赖注入](#angular-dependency-injection)
    - [Injector providers](#injector-providers)
    - [注入器提供商](#injector-providers)
    - [Dependency injection tokens](#dependency-injection-tokens)
    - [依赖注入令牌](#dependency-injection-tokens)
    - [Summary](#summary)
    - [总结](#summary)
  
  p Run the #[+liveExampleLink2()].
  p 运行#[+liveExampleLink2('在线例子')].
  
  .l-main-section#why-di
  :marked
  