anchor.diff:    When the user clicks *delete*, the component invokes the `delete()` method
     which tells the `EventEmitter` to emit a `Hero` object.
     
  -  组件定义了一个`deleteRequest`属性，它是一个`EventEmitter`实例。(译注：`deleteRequest`属性是导出Output属性，是组件与父级组件交互的主要方式之一。参见[父组件监听子组件的事件](docs/ts/latest/cookbook/component-communication.html#!#child-to-parent)。我们需要用`@Output()`来装饰它，或者把它添加到组件元数据的`outputs`数组中，它才能在父级组件可见。）
  +  组件定义了一个`deleteRequest`属性，它是一个`EventEmitter`实例。(译注：`deleteRequest`属性是导出Output属性，是组件与父级组件交互的主要方式之一。参见[输入和输出属性](#input-and-output-properties)和[父组件监听子组件的事件](docs/ts/latest/cookbook/component-communication.html#!#child-to-parent)。我们需要用`@Output()`来装饰它，或者把它添加到组件元数据的`outputs`数组中，它才能在父级组件可见。）
     当用户点击*删除*时，组件会调用`delete()`方法，这个方法告诉`EventEmitter`，发出一个`Hero`对象。
   
     Now imagine a hosting parent component that binds to the `HeroDetailComponent`'s `deleteRequest` event.
  
positive.code:   In this case, we have to remember to create and assign the `NgForOf` directive that identifies the list and the `NgForTrackBy` directive.
    Using the `*ngFor` syntax is much easier than writing out this expanded HTML ourselves.
    
    `NgFor`的代码相对`NgIf`更复杂一点，因为一个重复器有更多可配置的活动部分。
    这种情况下，我们不得不记着创建并对用于标记列表的`NgForOf`指令和`NgForTrackBy`指令赋值。
    使用`*ngFor`语法比直接写这些展开后的HTML本身要简单多了。
  
  <a id="ref-vars"></a>
  
negative.code:   The `currentHero` is referenced twice, first as the true/false condition for `NgIf` and
    again as the actual hero passed into the `HeroDetailComponent`.
    
    `currentHero`被引用了两次，第一次是作为`NgIf`的真/假条件，第二次把实际的hero值传给了`HeroDetailComponent`。
  
    The first expansion step transports the `ngIf` (without the `*` prefix) and its contents
    into an expression assigned to a `template` directive.
  