anchor.diff:  .l-main-section
   :marked
     ### NgFor
  +
     ### NgFor
  +
     `NgFor` is a _repeater_ directive &mdash; a way to customize data display.
   
     `NgFor`是一个_重复器_指令 —— 自定义数据显示的一种方式。
  
positive.code:   `HeroDetailComponent.deleteRequest`在圆括号中，它是一个事件绑定的目标。
  
    ### Declaring input and output properties
    ### 声明输入和输出属性
    Target properties must be explicitly marked as inputs or outputs.
  
    目标属性必须被显式的标记为输入或输出。
  
negative.code:   :marked
      The `ngModel` data property sets the element's value property and the `ngModelChange` event property
      listens for changes to the element's value.
  
      `ngModel`数据属性设置元素的`value`属性，并为元素`value`的变化而监听`ngModelChange`事件属性。
      
      The details are specific to each kind of element and therefore the `NgModel` directive only works for specific form elements,
      such as the input text box, that are supported by a [ControlValueAccessor](../api/forms/index/ControlValueAccessor-interface.html).
  
      每种元素的特点各不相同，所以`NgModel`指令只能在一些特定表单元素上使用，例如输入框，因为它们支持[ControlValueAccessor](../api/forms/index/ControlValueAccessor-interface.html)。
  
      We can't apply `[(ngModel)]` to a custom component until we write a suitable *value accessor*,
      a technique that is beyond the scope of this chapter.
      That's something we might want to do for an Angular component or a WebComponent whose API we can't control.
  
      除非写一个合适的*值访问器*，否则我们不能把`[(ngModel)]`用在我们自己的自定义组件上。但*值访问器*技术超出了本章的范围。
      对于不能控制其API的Angular组件或者Web组件，我们可能需要为其添加合适的*value accessor*。
      
      It's completely unnecessary for an Angular component that we _do_ control ... because we can name the value and event properties
      to suit Angular's basic [two-way binding syntax](#two-way) and skip `NgModel` altogether.
  
      但是对于我们能控制的Angular组件来说，这么做就完全没有必要了。因为我们可以指定值和事件属性名字来进行基本的Angular[双向绑定语法](#two-way)，完全不用`NgModel`。
      
  :marked
    Separate `ngModel` bindings is an improvement over binding to the element's native properties. We can do better.
  
  