anchor.diff:    and endows it with additional superpowers such as the ability to
     track the validity of user input.
     
  -  如果Angular没有捕获它，那它可能是个[HTMLFormElement](https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement)。
  -  但实际上它是个`ngForm`，一个对Angular内建指令`NgForm`的引用。它包装了原生的`HTMLFormElement`并赋予它额外的“超能力”，比如跟踪用户输入的有效性。
  +  如果Angular没有接管它，那它可能是个[HTMLFormElement](https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement)。
  +  实际上它是个`ngForm`，一个对Angular内建指令`NgForm`的引用。它包装了原生的`HTMLFormElement`并赋予它额外的“超能力”，比如跟踪用户输入的有效性。
   
     This explains how we can disable the submit button by checking `theForm.form.valid`
     and pass an object with rich information to the parent component's `onSubmit` method.
     
  -  这解释了我们该如何通过检查`theForm.form.valid`来禁用提交按钮，以及如何把一个信息量略大的对象传给父组件的`onSubmit`方法。
  +  这解释了我们该如何通过检查`theForm.form.valid`来禁用提交按钮，以及如何把一个信息量略大的对象传给父组件的`onSubmit`方法（译注：`onSubmit`方法可能会出发一个事件，被父组件监听，参见下面的`输入和输出属性`和[父组件监听子组件的事件](docs/ts/latest/cookbook/component-communication.html#!#child-to-parent)。）
   
   <a id="inputs-outputs"></a>
   .l-main-section
  
positive.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.
  
negative.code:   `NgFor`, `NgIf`, and `NgSwitch` all add and remove element subtrees that are wrapped in `<template>` tags.
    
    `*`是一种语法糖，它让那些需要借助模板来修改HTML布局的指令更易于读写。
    `NgFor`、`NgIf`和`NgSwitch`都会添加或移除元素子树，这些元素子树被包裹在`<template>`标签中。
  
    We didn't see the `<template>` tags because the `*` prefix syntax allowed us to skip those tags and
    focus directly on the HTML element that we are including, excluding, or repeating.
  