anchor.diff:  
     PhoneCat项目中同时有基于Protractor的E2E测试和一些基于Karma的单元测试。
     对这两者来说，E2E测试的转换要容易得多：根据定义，E2E测试通过与应用中显示的这些UI元素互动，从*外部*访问我们的应用来进行测试。
  -  E2E测试实际上并不关心这些应用中各部件的内部结构。这也意味着，虽然我们已经修改了一点儿此应用程序，
  +  E2E测试实际上并不关心这些应用中各部件的内部结构。这也意味着，虽然我们已经修改了此应用程序，
     但是E2E测试套件仍然应该能像以前一样全部通过。因为从用户的角度来说，我们并没有改变应用的行为。
   
     During TypeScript conversion, there is nothing we have to do to keep E2E tests
  
positive.code: 
    `@Injectable`装饰器将把一些依赖注入相关的元数据附加到该类上，让Angular 2知道它的依赖信息。
    就像在[依赖注入指南](../guide/dependency-injection.html)中描述过的那样，
    这是一个标记装饰器，我们要把它用在那些没有其它Angular 2装饰器但仍然有依赖需要被注入进来的类上。
  
  
    In its constructor the class expects to get the `Http` service. It will
  
negative.code:   have these explicit selectors. This one will match elements with the name `phone-list`,
    just like the Angular 1 version did.
  
    `selector`属性是一个CSS选择器，用来定义组件应该被放在页面的哪儿。在Angular 1，我们基于组件名字来匹配，
    但是在Angular 2中，我们要有一个专门指定的选择器。本组件将会对应元素名字`phone-list`，和Angular 1版本一样。
  
    We now also need to convert the template of this component into Angular 2 syntax.
    In the search controls we need to use Angular 2 syntax for the two `ngModel`s.
    We should also no longer use the `$ctrl` prefix in expressions:
  
    现在，我们同时需要将组件的模版也转换为Angular 2语法。在搜索控制中，我们需要为两个`ngModel`使用Angular 2语法。
    我们应该不需要再在表达式中使用`$ctrl`前缀：
  
  +makeExample('upgrade-phonecat-2-hybrid/ts/app/phone-list/phone-list.template.html', 'controls', 'app/phone-list/phone-list.template.html')
  
  